Ahora puede hacerlo en Mongo 3.2 usando $lookup
$lookup
toma cuatro argumentos
from
:Especifica la colección en la misma base de datos para realizar la unión. La colección from no se puede fragmentar.
localField
:especifica el campo desde la entrada de documentos hasta la etapa de $búsqueda. $lookup realiza una coincidencia de igualdad en el campo local con el campo extranjero de los documentos de la colección from.
foreignField
:especifica el campo de los documentos de la colección from.
as
:especifica el nombre del nuevo campo de matriz para agregar a los documentos de entrada. El nuevo campo de matriz contiene los documentos coincidentes de la colección from.
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)