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

配列内にネストされた配列からアイテムを更新する方法

    MongoDB 4.0では、$[<identifier>]を使用できます 構文 ArrayFiltersを追加します UpdateOptionsへ パラメータ:

    var filter = Builders<Model>.Filter.Empty;
    var update = Builders<Model>.Update.Set("Options.$[option].Inventory.$[inventory].Name", "New name");
    
    var arrayFilters = new List<ArrayFilterDefinition>();
    ArrayFilterDefinition<BsonDocument> optionsFilter = new BsonDocument("option.Id", new BsonDocument("$eq", optionId));
    ArrayFilterDefinition<BsonDocument> inventoryFilter = new BsonDocument("inventory.Id", new BsonDocument("$eq", inventoryId));
    arrayFilters.Add(optionsFilter);
    arrayFilters.Add(inventoryFilter);
    
    var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };
    
    var result = DefaultCollection.UpdateOne(filter, update, updateOptions);
    

    これにより、Inventoryが一意に識別されます Options内で更新する必要があるアイテム




    1. ISO日付をyyyy-mm-dd形式に変換します

    2. マングースに生息する

    3. 空間データベースを使用して、ポイントを含むポリゴンを検​​索する

    4. このノードはreplSetオプションで開始されませんでした