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