शीर्षक यह सब कहता है। कैसे आते हैं यदि किसी दस्तावेज़ के मेल खाने वाले फ़ील्ड के अनुसार कोई मेल खाने वाला बाहरी दस्तावेज़ नहीं होता है, तो यह पाइपलाइन के परिणाम सेट में कैसे शामिल नहीं होता है?
मैं मोंगो 3.2 में नए एग्रीगेटर्स का परीक्षण कर रहा हूं और मैं अब तक अनदेखा करके नेस्टेड सरणी लुकअप करने के लिए चला गया हूं, और फिर दस्तावेज़ों को बैक अप कर रहा हूं। मैंने जो कुछ छोड़ा है, उन सभी स्थानीय दस्तावेजों को शामिल करना है जो $lookup
मानदंडों को पूरा नहीं करते थे, जो मैंने सोचा था कि "बाएं बाहरी शामिल" की मानक परिभाषा थी।
क्वेरी है:
db.users.aggregate([
{
$unwind: "$profile",
$unwind: "$profile.universities"
},
{
$lookup: {
from: "universities",
localField: "profile.universities._id",
foreignField: "_id",
as: "profile.universities"
}
},
{
$group: {
_id: "$_id",
universities: {
$addToSet: "$profile.universities"
}
}
}
]).pretty()
तो अगर मैं एक user
एक खाली profile.universities
सरणी है कि है, तो मैं इसे परिणाम $lookup
कोई मैच लौटने की परवाह किए बिना सेट में शामिल किए जाने की जरूरत है, लेकिन यह करता है नहीं। मैं यह कैसे कर सकता हूं, और किसी भी कारण से मोंगो ने इस तरह से संचालित करने के लिए $lookup
का निर्माण किया?
कमाल है, यह वास्तव में मुद्दा था। बहुत बहुत धन्यवाद!! –