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

mongo . में उप-संग्रह में अद्यतन या संलग्न करें

मुझे यकीन नहीं है कि एक ही प्रश्न में ऐसा करने का कोई सीधा तरीका है,

एग्रीगेशन पाइपलाइन से अपडेट करें MongoDB v4.2 से शुरू,

  • $cond नाम जांचने के लिए subColl . में है सरणी,
  • सच्ची स्थिति, मौजूदा वस्तु के साथ विलय करने की आवश्यकता है, $map लूप को पुनरावृत्त करने के लिए, स्थिति की जांच करें यदि स्थिति से मेल खाता है तो $mergeObjects का उपयोग करके वर्तमान ऑब्जेक्ट के साथ नए डेटा ऑब्जेक्ट को मर्ज करें
  • झूठी स्थिति, सरणियों को संक्षिप्त करने की आवश्यकता है, वर्तमान subColl $concatArrays . का उपयोग करके सरणी और नई वस्तु
const _id = 123;
const update = { name: 'John', other: 1000 };

Schema.findOneAndUpdate(
  { _id: _id },
  [{
    $set: {
      subColl: {
        $cond: [
          { $in: [update.name, "$subColl.name"] },
          {
            $map: {
              input: "$subColl",
              in: {
                $cond: [
                  { $eq: ["$$this.name", update.name] },
                  { $mergeObjects: ["$$this", update] },
                  "$$this"
                ]
              }
            }
          },
          { $concatArrays: ["$subColl", [update]] }
        ]
      }
    }
  }]
)

खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. UpdateOneAsync पर एक्सप्रेशन ट्री समर्थित नहीं है

  2. MeteorJS में MongoDB संग्रह पर उप-दस्तावेज़ों की एक सरणी को कैसे अपडेट करें?

  3. MongoDB - कोड के साथ बंद करना:62

  4. मैं pymongo का उपयोग करके MongoDB से एक संग्रह की प्रतिलिपि कैसे बना सकता हूं और दूसरे खाली संग्रह में पेस्ट कर सकता हूं?

  5. मोंगोडब को विशेष पात्रों को अनदेखा करने से रोकें?