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

MongoDb में अप्सर्ट शब्दकोश

आप उन सभी संपत्तियों को देख सकते हैं जिन्हें आप अपडेट/सम्मिलित करना चाहते हैं और प्रत्येक संपत्ति के लिए ऐसा कर सकते हैं:

UpdateDefinition<Site> upsert = null;
if (properties.Any())
{
    var firstprop = properties.First();
    upsert = Builders<Site>.Update.Set(nameof(Site.Properties) + "." + firstprop.Key, 
                               firstprop.Value);

    foreach (var updateVal in properties.Skip(1))
    {
        upsert = upsert.Set(nameof(Site.Properties) + "." + updateVal.Key, 
                                          updateVal.Value);
    }

    collection.UpdateOne(r => r.Id == "YourId", upsert, 
                                               new UpdateOptions { IsUpsert = true });
}

उत्तर का पिछला संस्करण, कई अपडेट के साथ:

foreach (var updateVal in properties)
{
    collection.UpdateOne(r => r.Id == "YourId", 
        Builders<Site>.Update.Set( nameof(Site.Properties)+ "." + updateVal.Key, 
                                   updateVal.Value), 
                                   new UpdateOptions { IsUpsert = true});
}

ध्यान दें, यह केवल नई कुंजी/मान जोड़ देगा या मौजूदा अपडेट करेगा, इससे कुछ भी नहीं हटेगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी में एक बार डीबी सिंक को दूसरे डीबी में कैसे करें?

  2. जैस्पर रिपोर्ट्स लाइब्रेरी और मोंगोडीबी

  3. मोंगो मैपर में बराबर नहीं है

  4. मोंगोडीबी सी # चालक 'कर्सर नहीं मिला'

  5. mongodb:upserting:यदि दस्तावेज़ डाला जा रहा है तो केवल मूल्य निर्धारित करें