在mongodb中的子查询
问题描述:
我有两个名为PERSON和DOCUMENTS的mongodb表。我想从PERSON表中获取其ID为DOCUMENT表中的personName。在关系表中,查询就像这样。在mongodb中的子查询
SELECT personName from PERSON where personID in (SELECT personID from ID)
我试图使用聚合和$查找功能,但它没有得到我想要的答案。我使用的mongo查询是,
db.PERSON.aggregate([
{
"$lookup": {
"from": "DOCUMENTS",
"localField": "personID",
"foreignField": "personID",
"as": "grp"
}
}
])
这个mongo查询连接了这两个表并返回每个文件。但我只想要personName。
任何帮助将不胜感激。
答
我发现了一个办法做到这一点,
db.PERSON.aggregate([
{
"$lookup": {
"from": "DOCUMENTS",
"localField": "personID",
"foreignField": "personID",
"as": "grp"
}
},
{"$unwind" : "$grp"},
{"$project" : {
"personName" : 1
}
])