2016-11-19 2 views
0

Angenommen, ich habe ein paar Sammlungen in MongoDB, die ich gerne eine Kreuzung der Wörter zum Beispiel bekommen würde.MongoDB erhält eindeutigen Satz von Wörtern aus mehreren Sammlungen

Wie Sie aus dem obigen Beispiel sehen können, gibt es frische und getrocknete Früchte, aber es gibt ähnliche Elemente zwischen jeder Sammlung. Es könnte auch mehr als nur zwei Sammlungen geben.

Wie könnte ich eine Abfrage in dieser Datenbank ausführen, um zu sagen, dass alle Arten von Früchten aus jeder Sammlung gefunden werden.

da Apfel, Pfirsich und Traube in beiden Sammlungen sind, gibt es eine Möglichkeit, Daten so zu extrahieren?

Antwort

0

Sie können dazu den Befehl verwenden. Für gemeinsame Früchte in „Freshfruit“ und „driedFruit“ Sammlungen eine Abfrage wie die folgenden kann verwendet werden:

db.freshFruit.aggregate([ 
    { 
     $lookup: { 
      from: "driedFruit", 
      localField: "type", 
      foreignField: "type", 
      as: "fruit" 
     } 
    }, 
    { 
     $match: { "fruit": { $ne: [] } } 
    } 
]); 
0
` 
db.freshFruit.aggregate([ 
     { 
     $lookup: { 
      from: "driedFruit", 
      localField: "type", 
      foreignField: "type", 
      as: "fruit" 
        } 
     }, 
     {$match: { "fruit": { $ne: [] } }}, 
     //Add another lookup and match to join another collection and at last use    $ group stage 
     { $group: { "_id": null,fruits : {$push :$type}}} 
]); 

` In Früchten erhalten Sie alle Früchte bekommen, die in alle Sammlung vorhanden

Verwandte Themen