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

एक एम्बेडेड दस्तावेज़ में 'अप्सर्ट'

आप किसी सेट में जोड़ने के लिए $addToSet का उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि कोई डुप्लिकेट सरणी तत्व नहीं है, लेकिन यह आपके "अपडेटिंग" मामले के लिए काम नहीं करेगा।

आप जो चाहते हैं उसे करने के लिए, आपको अपनी डेटा संरचना को कुछ इस तरह बदलना होगा:

{
    "_id" : ObjectId("4f9519d6684c8b1c9e72e367"),
    "component_id" : 1,
    "_locales" : {
        "nl_NL" : {
            "url" : "dutch"
        }
    }
}

अब आप nl_NL लोकेल पर केवल:

. के साथ एक अपडेट कर सकते हैं
db.components.update( { component_id: 1 }, { $set: { '_locales.nl_NL.url' : 'new url' } }, true );

और एक नया लोकेल भी काम करेगा, जैसे कि:

db.components.update( { component_id: 1 }, { $set: { '_locales.en_US.url' : 'American' } }, true );

हो सकता है कि आप लोकेल को नेस्टेड ऑब्जेक्ट के हिस्से के रूप में रखने पर विचार करना चाहें, जैसे कि:

{
    "_id" : ObjectId("4f9519d6684c8b1c9e72e367"),
    "component_id" : 1,
    "_locales" : {
        "nl_NL" : {
            "url" : "dutch"
            "locale" : "nl_NL"                 
        }
    }
}

इससे कुछ मामलों में डेटा पुनर्प्राप्त करना आसान हो जाता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवले की वस्तु से संपत्ति मिलना नामुमकिन

  2. MongoDB में नेस्टेड इंडेक्स कैसे बनाएं?

  3. जब कोई क्रम निर्दिष्ट नहीं किया जाता है तो MongoDB रिकॉर्ड कैसे सॉर्ट करता है?

  4. 2022 के लिए MongoDB ट्यूटोरियल - जानें कि MongoDB क्या है?

  5. ClusterControl के साथ अपने डेटा की सुरक्षा