MongoDB 3.4 के साथ, आप एक एकत्रीकरण पाइपलाइन चला सकते हैं जो $addFields
पाइपलाइन और एक $filter
ऑपरेटर केवल Company
को लौटाएगा दिए गए शर्त से मेल खाने वाले तत्वों के साथ सरणी। फिर आप $filter
अभिव्यक्ति के साथ $arrayElemAt
ऑपरेटर को एक एकल दस्तावेज़ वापस करने के लिए, जिसमें संक्षेप में $unwind
सरणी को समतल करके कार्यक्षमता।
उपरोक्त अवधारणा को समझने के लिए इस उदाहरण का अनुसरण करें:
db.users.aggregate([
{ "$match": { "UserName": "administrator" } },
{
"$lookup": {
"from": 'companies',
"localField": 'CompanyID',
"foreignField": 'CompanyID',
"as": 'Company'
}
},
{
"$addFields": {
"Company": {
"$arrayElemAt": [
{
"$filter": {
"input": "$Company",
"as": "comp",
"cond": {
"$eq": [ "$$comp.CompanyName", "edt5" ]
}
}
}, 0
]
}
}
}
])