से वापस लौटने के लिए सीमित करता है, $lookup
के साथ करने के बाद, मैं केवल कुछ फ़ील्ड लौटने का अनुरोध करना चाहता हूं, न कि संपूर्ण दस्तावेज़।
मैं निम्नलिखित प्रश्न हैं:
db.somecollection.aggregate([{
$lookup: {
from: "campaigns",
localField: "campId",
foreignField: "_id",
as: "campaign"
}
}, {
$unwind: "$campaign"
}, {
$lookup: {
from: "entities",
localField: "campaign.clientid",
foreignField: "_id",
as: "campaign.client"
}
}]);
यह अनुरोध मुझे वापस आ जाएगी यह:
{
"_id" : ObjectId("56cc7cd1cc2cf62803ebfdc7"),
"campId" : ObjectId("56c740e4479f46e402efda84"),
"articleId" : ObjectId("56c742c06094640103ba3843"),
"campaign" : {
"_id" : ObjectId("56c740e4479f46e402efda84"),
"clientid" : ObjectId("56c740b8479f46e402efda83"),
"client" : [
{
"_id" : ObjectId("56c740b8479f46e402efda83"),
"username" : "someusername",
"shhh" : "somehashedpassword",
"email" : "[email protected]",
}
]
}
अनुरोध अच्छी तरह से काम करता है, लेकिन मैं केवल के लिए प्राप्त करने के लिए campaign.client
में फ़ील्ड्स फ़िल्टर करना चाहते हैं उदाहरण _id
और username
। क्या मोंगोडीबी aggregate
अनुरोध में ऐसा करने का कोई तरीका है?
उपयोग एक '$ project' मंच। '{ $ परियोजना: { _id1: 1, campId: 1, articleId: 1, campaign._id: 1, campaign.clientid: 1, campaign.client._id: 1, अभियान। client.username: 1 } } ' –
@ सिद्धार्थजमेरा आपको इसे एक जवाब में बदलना चाहिए, आपने अभी अपना दिन बचाया है! –