Dit gedrag is niet gerelateerd aan $lookup
, komt dit omdat het standaardgedrag voor $unwind
is om documenten weg te laten waar het veld waarnaar wordt verwezen ontbreekt of een lege array is.
Om de afgewikkelde documenten te behouden, zelfs wanneer profile.universities
een lege array is, kunt u de preserveNullAndEmptyArrays
. ervan instellen optie tot 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()