Je kunt het nu doen in Mongo 3.2 met $lookup
$lookup
duurt vier argumenten
from
:Specificeert de verzameling in dezelfde database waarmee de join moet worden uitgevoerd. De uit-collectie kan niet worden geshard.
localField
:Specificeert het veld van de documenten die worden ingevoerd in de $lookup-fase. $lookup voert een gelijkheidsovereenkomst uit op het localField naar het ForeignField uit de documenten van de from-verzameling.
foreignField
:Specificeert het veld van de documenten in de from collectie.
as
:Specificeert de naam van het nieuwe matrixveld dat aan de invoerdocumenten moet worden toegevoegd. Het nieuwe arrayveld bevat de overeenkomende documenten uit de from-collectie.
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)