![](/img/trans.png)
[英]How to join three (multipe) collections with $lookup in mongodb?
[英]How to Join two collections in MongoDB and NodeJS with $lookup and DbRef?
如果我有兩個集合,其中一個有dbref,如何使用$ lookup和dbref加入?
DBref是BSON對象,您無法使用其值進行查找。
但是,有一種方法可以做到這一點,將DBRef對象轉換為數組。 幾個月前我寫了一個答案,描述了如何做到這一點。
假設你有這樣的DBRef對象:
myField: DBRef("otherCollection", ObjectId("582abcd85d2dfa67f44127e0")),
在myField上使用$ objectToArray就像這樣
db.myColl.aggregate([
{
$project: {
transformedDBRef: {$objectToArray: "$myField"},
}
},
])
結果將是兩個對象的數組,一個用於引用的對象,一個用於DBRef中包含的ObjectId,每個對象具有字段“k”和字段“v”。 它看起來像這樣:
transformedDBRef: [{"k" : "$ref","v" : "otherCollection"},{"k" : "$id","v" : ObjectId("582abcd85d2dfa67f44127e0")}
然后,您可以grep ObjectId。 有關完整的解決方案,請查看上面的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.