sql >> Databasteknik >  >> NoSQL >> MongoDB

Säkert infoga eller uppdatera underdokument i MongoDB

Har du tittat på AddToSet Om du använder den här i kombination med uppdateringsfunktionen istället för att ersätta den borde den ha bättre kontroll över din atomicitet.

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

collection.UpdateOne(itemFilter, updateBuilder);

Som så i ditt fall.

    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. grupp i mongo exklusive nollvärden

  2. Summa kapslad array i node.js mongodb

  3. Var finns datakatalogen i Redis?

  4. Arkitektur för inloggningssystem på MEAN stack?