簡體   English   中英

如何使用$ lookup和DbRef加入MongoDB和NodeJS中的兩個集合?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM