sql >> Databáze >  >> NoSQL >> MongoDB

Bezpečně vložte nebo aktualizujte vnořený dokument v MongoDB

Podívali jste se na AddToSet Pokud tuto metodu použijete v kombinaci s funkcí aktualizace místo funkce nahradit, měla by si udržet lepší kontrolu nad vaší atomicitou.

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

collection.UpdateOne(itemFilter, updateBuilder);

Stejně jako ve vašem případě.

    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. Problém s analýzou serveru a mongodb

  2. Jak použít $slice a $filter výsledek v MongoDB?

  3. Jsou data vrácená z Mongoose neměnná?

  4. Jak změním databázi redis?