MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie frage ich referenzierte Objekte in MongoDB ab?

Sie können dies jetzt in Mongo 3.2 mit $lookup tun

$lookup nimmt vier Argumente

from :Gibt die Sammlung in derselben Datenbank an, mit der die Verknüpfung durchgeführt werden soll. Die From-Sammlung kann nicht geteilt werden.

localField :Gibt das Feld aus der Dokumenteingabe in die $lookup-Phase an. $lookup führt einen Gleichheitsabgleich zwischen dem localField und dem ForeignField aus den Dokumenten der From-Sammlung durch.

foreignField :Gibt das Feld aus den Dokumenten in der From-Sammlung an.

as :Gibt den Namen des neuen Array-Felds an, das den Eingabedokumenten hinzugefügt werden soll. Das neue Array-Feld enthält die passenden Dokumente aus der from-Sammlung.

db.Foo.aggregate(
  {$unwind: "$bars"},
  {$lookup: {
    from:"bar",
    localField: "bars",
    foreignField: "_id",
    as: "bar"

   }},
   {$match: {
    "bar.testprop": true
   }}
)