मुख्य चुनौती यह है कि आप मुख्य दस्तावेज़ से सभी फ़ील्ड want चाहते हैं (चूंकि आप उन सभी को नहीं जानते हैं) साथ ही सूची में से केवल 2।
इसे यह करना चाहिए:
{
$project: {
"_id": 0,
"document": "$$CURRENT",
"list._id": "$$CURRENT.list._id",
"list.name": "$$CURRENT.list.name"
}
}, {
$project: {
"document.list": 0
}
}, {
$addFields: {
"document.list._id": "$$CURRENT.list._id",
"document.list.name": "$$CURRENT.list.name"
}
}, {
$replaceRoot: {
newRoot: "$document"
}
}
यह कुछ चरणों से गुजरता है लेकिन काम पूरा हो जाता है :)। यह वर्तमान दस्तावेज़ और केवल आपके इच्छित सूची फ़ील्ड लेगा। फिर यह वर्तमान दस्तावेज़ से इसकी सूची को हटा देगा। फिर यह उसी दस्तावेज़ में सूची जोड़ देगा (क्योंकि वह विशिष्ट फ़ील्ड के साथ है जिसे हम चाहते हैं)। फिर यह उन क्षेत्रों को दस्तावेज़ में जोड़ देगा और अंत में यह रूट को उस दस्तावेज़ से बदल देगा।