आपको $ पोजिशनल ऑपरेटर
चाहिए जहां आप विशेष दस्तावेज़ की एक सरणी में एकल नेस्टेड आइटम खोजने के लिए दस्तावेज़-स्तर की स्थिति और सरणी-स्तर की स्थिति निर्दिष्ट कर सकते हैं। सी# $
में चिन्ह -1
. द्वारा दर्शाया जाता है आपके मॉडल सरणी की अनुक्रमणिका के रूप में पारित किया गया। कोशिश करें:
var col = mydb.GetCollection<Document>("collectionName");
var id = new ObjectId("5babaaf5509f6d342da5abaa");
var elementName = "Car";
var newValue = 2;
var filterBuilder = Builders<Document>.Filter;
var filter = filterBuilder.Eq(x => x.Id, id) &
filterBuilder.ElemMatch(doc => doc.Elements, el => el.Name == elementName);
var updateBuilder = Builders<Document>.Update;
var update = updateBuilder.Set(doc => doc.Elements[-1].Value, newValue);
Col.UpdateOne(filter, update);