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