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

Mongo C#ドライバーは、ネストされた配列の特定の要素を更新します

    $位置演算子 が必要です ここで、ドキュメントレベルの条件と配列レベルの条件を指定して、特定のドキュメントの配列内の単一のネストされたアイテムを検索できます。 C#の場合$ 記号は-1で表されます モデル配列のインデックスとして渡されます。試してみてください:

    var col = mydb.GetCollection<Document>("collectionName");
    var id = new ObjectId("5babaaf5509f6d342da5abaa");
    var elementName = "Car";
    var newValue = 2;
    
    var filterBuilder = Builders<Document>.Filter;
    var filter = filterBuilder.Eq(x => x.Id, id) &
        filterBuilder.ElemMatch(doc => doc.Elements, el => el.Name == elementName);
    
    var updateBuilder = Builders<Document>.Update;
    var update = updateBuilder.Set(doc => doc.Elements[-1].Value, newValue);
    
    Col.UpdateOne(filter, update);
    



    1. データベースのクレデンシャルを正しく非表示にする

    2. MongoDBNodeJSプロセスのメモリ不足

    3. Redis install ccの問題:コマンドが見つかりません

    4. DBにnull値を挿入するSpringDatamongo