MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kamus Upsert di MongoDb

Anda dapat menelusuri semua properti yang ingin Anda perbarui/masukkan dan melakukannya untuk setiap properti:

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 });
}

Versi jawaban sebelumnya, dengan beberapa pembaruan:

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});
}

Catatan, itu hanya akan menambahkan Kunci/Nilai baru atau memperbarui yang sudah ada, ini tidak akan menghapus apa pun.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Simpan poligon GeoJSON di MongoDB

  2. id kenaikan otomatis di luwak

  3. Bagaimana cara mengintegrasikan MongoDB dengan Solr?

  4. Filter array di mongodb

  5. Mengambil kunci MongoDB spesifik dari DuplicateKeyException yang sebenarnya diduplikasi (Java/Spring)