MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Słownik upsert w MongoDb

Możesz przejrzeć wszystkie właściwości, które chcesz zaktualizować/wstawić i zrobić to dla każdej właściwości:

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

Poprzednia wersja odpowiedzi z wieloma aktualizacjami:

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

Pamiętaj, że to po prostu doda nowe klucze/wartości lub zaktualizuje istniejące, to niczego nie usunie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak mogę edytować/zmieniać nazwy kluczy podczas json.load w pythonie?

  2. nie można zainstalować npm mangusty

  3. Czy mongodb działa?

  4. MongoDB $tygodniowa aktualizacja nr 66 (22 kwietnia 2022 r.):Hackathony, mongosh i Github

  5. Korzystanie z trwałych funkcji w aplikacji funkcji azure z mongodb