この動作は$lookup
とは関係ありません 、これは、 $unwind
参照されるフィールドが欠落している、または空の配列であるドキュメントを省略します。
profile.universities
の場合でも、巻き戻されたドキュメントを保持するため は空の配列です。preserveNullAndEmptyArrays
を設定できます。 true
へのオプション :
db.users.aggregate([
{
$unwind: "$profile",
$unwind: {
path: "$profile.universities",
preserveNullAndEmptyArrays: true
}
},
{
$lookup: {
from: "universities",
localField: "profile.universities._id",
foreignField: "_id",
as: "profile.universities"
}
},
{
$group: {
_id: "$_id",
universities: {
$addToSet: "$profile.universities"
}
}
}
]).pretty()