2017-10-12 1 views
0

Hier ist meine Problemstellung.Wie kann ich drei mongodb collection id von eins ist Referenz der zweiten?

Ich habe drei Sammlungen. A, B, C

A - ID hat einen Fremdschlüssel Bezug eingereicht B A_Id und B-ID ein Fremdschlüssel Bezug auf C-Feld hat

b_id

Die Eingabe in meiner Abfrage ist eine Nummer, jetzt, wie I kann ein All fetch

records

alle B Aufzeichnungen übereinstimmt A-ID

Alle Datensätze C Spiele b-ID

I cou ld holen A und seine Referenz B-Datensätze unter Verwendung von Abfrage unten, aber in der gleichen Abfrage wie kann ich alle C-Datensätze abrufen, die Bezug auf b-ID hat?

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

Antwort

0

Dies kann mit der folgenden Abfrage erreicht werden;

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

Dank Yathish, das hat funktioniert :) –

Verwandte Themen