sql >> データベース >  >> NoSQL >> MongoDB

MongoDBでサブドキュメントを安全に挿入または更新します

    AddToSet を見たことがありますか メソッド、これを置換ではなく更新関数と組み合わせて使用​​すると、アトミック性をより適切に制御できるはずです。

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

    あなたの場合もそうです。

        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. Laravelで月ごとの現在の日をカウントするにはどうすればよいですか?

    2. MERNスタックのようなWebおよびAPIソリューションを認証および承認するための最良の方法は何ですか?

    3. マングースドキュメント。保存が機能しない

    4. データベースクラスター全体でのメンテナンスウィンドウの簡単なスケジューリング