sql >> Database >  >> NoSQL >> MongoDB

Hoe een item te updaten vanuit een array die is genest in een array

In MongoDB 4.0 kunt u de $[<identifier>] . gebruiken syntaxis en voeg ArrayFilters . toe naar UpdateOptions parameter:

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

Dat identificeert op unieke wijze Inventory item dat moet worden bijgewerkt in Options




  1. Hoe past u in MongoDb interne sorteervelden toe die aanwezig zijn in het document?

  2. Redis jokerteken verwijderscript met EVAL, SCAN en DEL retourneert Schrijfcommando's niet toegestaan ​​na niet-deterministische commando's

  3. Redis gebruiken als LRU-cache voor postgres

  4. Hoe kan ik terugdraaien in transacties in mongo bereiken?