2017-10-12 10 views
0

ここに私の問題文があります。どのように私は3つのmongodbコレクションのIDに参加できますか?

私は3つのコレクションを持っています。 、B、C

A - IDがBへの外部キー参照がA_ID を提出しており、B IDがCのフィールドへの外部キー参照が私のクエリに

に入力をB_IDた今、どのように-IDです私はCOU

すべてのレコード

全てのBレコード-IDと一致

すべてのCレコードB-ID

に一致をフェッチすることができldは以下のクエリを使用してAレコードとその参照Bレコードを取得しますが、同じクエリではどのようにb-idへの参照を持つすべてのCレコードを取得できますか?

db.getCollection('A').appregate({ 
{ "$lookup": { 
    "from": "B", 
    "localField": "id", 
    "foreignField": "a_id", 
    "as": "AANDB" 
}} 
}) 

答えて

0

これは、以下のクエリで実現できます。

db.getCollection('A').aggregate([ 
    { "$lookup": { 
     "from": "B", 
     "localField": "id", 
     "foreignField": "a_id", 
     "as": "AANDB" 
    }}, 

    {"$unwind" : "$AANDB"}, 

    {"$lookup" : { 
     "from": "C", 
     "localField": "AANDB.id", 
     "foreignField": "b_id", 
     "as": "BANDC" 
    }} 
]) 
+0

Thanks Yathish、that worked :) –

関連する問題