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

Bezpiecznie wstawiaj lub aktualizuj poddokument w MongoDB

Czy spojrzałeś na AddToSet metody, jeśli użyjesz tego w połączeniu z funkcją aktualizacji zamiast funkcji zamień, powinno to zapewnić lepszą kontrolę nad twoją niepodzielnością.

var updateBuilder = Builders<Item>.Update.AddToSet(items => items.SubItems, new SubItem());

collection.UpdateOne(itemFilter, updateBuilder);

Tak jak w twoim przypadku.

    public Task Save(string itemId, SubItem subItem)
    {
        var itemFilter = Builders<Item>.Filter.Eq(v => v.Id, itemId);
        var collection = _db.GetCollection<Item>("Items");

        var updateBuilder = Builders<Item>.Update.AddToSet(items => items.SubItems, subItem);

        collection.UpdateOneAsync(itemFilter, updateBuilder, new UpdateOptions() { IsUpsert = true }).Wait();
    }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy powinienem używać Java String Pool do synchronizacji na podstawie unikalnego identyfikatora klienta?

  2. menu mean.js nie działa Publicznie

  3. Zapytanie geoprzestrzenne MongoDB z $not

  4. Mongoid 3 + Heroku (MongoHQ) powodują Moped::Errors::OperationFailure

  5. Dlaczego nie mogę uruchomić wyjaśnienia podczas aktualizacji MongoDB?