Możesz to teraz zrobić w Mongo 3.2 za pomocą $lookup
$lookup
przyjmuje cztery argumenty
from
:Określa kolekcję w tej samej bazie danych, z którą ma zostać wykonane łączenie. Kolekcji z kolekcji nie można podzielić na fragmenty.
localField
:Określa pole z danych wejściowych dokumentów do etapu wyszukiwania $. $lookup wykonuje dopasowanie równości na localField do outsideField z dokumentów z kolekcji.
foreignField
:Określa pole z dokumentów w kolekcji z.
as
:określa nazwę nowego pola tablicy do dodania do dokumentów wejściowych. Nowe pole tablicy zawiera pasujące dokumenty z kolekcji from.
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)