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
}}
)