यह व्यवहार $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()