MongoDB
 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Релации в база данни, ориентирана към документи?

  2. C# mongodb - как да актуализирате вложени елементи на масив

  3. Схема и поддокументи в mongoose.js

  4. Какво ще се случи, ако unwind се приложи към поле, което не присъства, докато се използва агрегиране в mongoose

  5. Актуализирайте вложен обект в MongoDB, ако съществува, в противен случай го добавете