Ora puoi farlo in Mongo 3.2 usando $lookup
$lookup
accetta quattro argomenti
from
:specifica la raccolta nello stesso database con cui eseguire l'unione. Impossibile partizionare dalla raccolta.
localField
:specifica il campo dai documenti immessi nella fase di ricerca $. $lookup esegue una corrispondenza di uguaglianza tra localField e ForeignField dai documenti della collezione from.
foreignField
:specifica il campo dei documenti nella raccolta.
as
:specifica il nome del nuovo campo della matrice da aggiungere ai documenti di input. Il nuovo campo dell'array contiene i documenti corrispondenti dalla raccolta.
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)