2017-07-25 130 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 
} 

])