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
. के अंदर अपडेट करने की आवश्यकता है