$lookupを使用してMongo3.2で実行できるようになりました
$lookup 4つの引数を取る
from :結合を実行する同じデータベース内のコレクションを指定します。 fromコレクションをシャーディングすることはできません。
localField :$lookupステージに入力されたドキュメントのフィールドを指定します。 $ lookupは、fromコレクションのドキュメントからのlocalFieldとforeignFieldの等価一致を実行します。
foreignField :fromコレクション内のドキュメントのフィールドを指定します。
as :入力ドキュメントに追加する新しい配列フィールドの名前を指定します。新しい配列フィールドには、fromコレクションからの一致するドキュメントが含まれます。
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)