2017-07-25 81 views
2

我有两个名为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。

任何帮助将不胜感激。

回答

0

我发现了一个办法做到这一点,

db.PERSON.aggregate([ 

{ 
"$lookup": { 
    "from": "DOCUMENTS", 
    "localField": "personID", 
    "foreignField": "personID", 
    "as": "grp" 
} 
}, 
{"$unwind" : "$grp"}, 
{"$project" : { 
    "personName" : 1 
} 

])