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

स्प्रिंग का उपयोग करके एक मोंगोडब दस्तावेज़ के नेस्टेड सरणी में एक जेसन कैसे जोड़ें?

यह अद्यतन क्वेरी JSON को नेस्टेड सरणी में जोड़ती है, "SERVICES.VERSIONS.GROUPS.CUSTOMERS" , निर्दिष्ट फ़िल्टर शर्तों के आधार पर। ध्यान दें कि आपकी फ़िल्टर स्थितियां अपडेट ऑपरेशन को विशिष्ट सरणी (नेस्टेड सरणियों के) पर निर्देशित करती हैं।

// JSON document to be added to the CUSTOMERS array
new_cust = { 
             "CUSTOMER_CONFIG_ID": "6", 
             "ACTIVATION_DATE": "31-03-2020", 
             "STATUS": "Y" 
}

db.collection.update( 
  { 
      "SERVICE_CATEGORY": "COMMON_SERVICE", 
      "SERVICES.SERVICE_NAME": "Authentication Service",
      "SERVICES.VERSIONS.VERSION_NAME": "AuthenticationServiceV6_3"
  }, 
  { 
      $push: { "SERVICES.$[s].VERSIONS.$[v].GROUPS.$[g].CUSTOMERS": new_cust } 
  },
  {
      multi: true,
      arrayFilters: [
          { "s.SERVICE_NAME": "Authentication Service" },
          { "v.VERSION_NAME": "AuthenticationServiceV6_3" },
          { "g.GROUP_NAME": "TEST GROUP" }
      ]
  }
);

नेस्टेड सरणियों के साथ दस्तावेज़ों को अपडेट करते समय ध्यान देने योग्य कुछ बातें एक से अधिक स्तर के घोंसले के शिकार।

  • सभी स्थितीय ऑपरेटर का उपयोग करें $[] और फ़िल्टर किए गए पोजिशनलऑपरेटर $[<identifier>] , और नहीं $ स्थितीय ऑपरेटर। फ़िल्टर किए गए स्थितीय ऑपरेटर के साथ arrayFilters . का उपयोग करके सरणी फ़िल्टर शर्तों को निर्दिष्ट करें पैरामीटर। ध्यान दें कि यह आपके अपडेट को विशिष्ट नेस्टेड सरणी को लक्षित करने के लिए निर्देशित करेगा।
  • फ़िल्टर किए गए स्थितीय ऑपरेटर के लिए $[<identifier>] , पहचानकर्ता को छोटे अक्षर से शुरू होना चाहिए और उसमें केवल अल्फ़ान्यूमेरिक वर्ण होने चाहिए।

संदर्भ:

  • ऐरे अपडेटऑपरेटर
  • db.collection.update() arrayFilters के साथ


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी $डिवाइड

  2. रोबोमोंगो को मोंगोडीबी से कैसे कनेक्ट करें

  3. झंडा सेट होने तक मोंगोडब लॉक संग्रह?

  4. क्या MongoDB में हाल ही में हटाए गए दस्तावेज़ों को पुनर्प्राप्त करने का कोई तरीका है?

  5. उल्का:मैं अपने मोंगो डेटाबेस का बैकअप कैसे ले सकता हूं