MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

$लुकअप एग्रीगेशन में $प्रोजेक्ट

मुख्य चुनौती यह है कि आप मुख्य दस्तावेज़ से सभी फ़ील्ड 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"
  }
}

यह कुछ चरणों से गुजरता है लेकिन काम पूरा हो जाता है :)। यह वर्तमान दस्तावेज़ और केवल आपके इच्छित सूची फ़ील्ड लेगा। फिर यह वर्तमान दस्तावेज़ से इसकी सूची को हटा देगा। फिर यह उसी दस्तावेज़ में सूची जोड़ देगा (क्योंकि वह विशिष्ट फ़ील्ड के साथ है जिसे हम चाहते हैं)। फिर यह उन क्षेत्रों को दस्तावेज़ में जोड़ देगा और अंत में यह रूट को उस दस्तावेज़ से बदल देगा।

इसे यहां काम करते हुए देखें



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB नेस्टेड ऑब्जेक्ट एग्रीगेशन काउंटिंग

  2. MongoDB $orderBy

  3. MongoDB एकत्रीकरण:डबल लुकअप, और संबंधित ऑब्जेक्ट के लिए लुकअप प्रतिक्रिया मर्ज करें

  4. मैं Twitter लेख एग्रीगेटर के लिए MongoDB स्कीमा कैसे डिज़ाइन करूं?

  5. मुझे यह त्रुटि मिलती है कि मुझे समझ में नहीं आता क्यों, मेरे एमवीसी प्रोजेक्ट में नोआरएम और मोंगो का उपयोग करना