sql >> Database >  >> NoSQL >> MongoDB

Subdocument veilig invoegen of bijwerken in MongoDB

Heb je de AddToSet bekeken methode, als je dit gebruikt in combinatie met de update-functie in plaats van de vervang-functie, zou het je atomiciteit beter onder controle moeten houden.

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

collection.UpdateOne(itemFilter, updateBuilder);

Like dus in jouw geval.

    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. Mongodb:waarom toont dbs mijn databases niet?

  2. Spring Data Mongo Repository::Gemeenschappelijke gedeelde methode voor alle Repo-problemen

  3. Alle collecties in een mongo-database weergeven in een nodejs-script

  4. Bel MongoDB opgeslagen Javascript-functie in C # .Net