MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zaktualizować element z tablicy zagnieżdżonej w tablicy?

W MongoDB 4.0 możesz użyć $[<identifier>] składnia i dodaj ArrayFilters do UpdateOptions parametr:

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);

To jednoznacznie zidentyfikuje Inventory element, który musi zostać zaktualizowany w Options




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wykonać runCommand z Mongoose?

  2. Meteor - collection.find() zawsze zwraca wszystkie pola

  3. Operacje zapisu plików w skrypcie mongo?

  4. Jak korzystać z Meteor Upsert

  5. Co nowego w MongoDB 4.4