आप सरणी में एक पूरे डिवीजन को एक बार में अपडेट करने के लिए MongoDB की स्थितीय सरणी संशोधन सुविधा का उपयोग कर सकते हैं:
var division = GetDivisionById(1);
division.Name = "New Name";
// change any other properties of division you want
collection.Update(
Query.EQ("Divisions._id", 1),
Update.Set("Divisions.$", BsonDocumentWrapper.Create<IDivision>(division))
);
यहां चल रही प्रमुख बातें हैं:
- अपडेट.सेट में "$" का उपयोग
- चूंकि Update.Set को इसके दूसरे तर्क के रूप में एक BsonValue की आवश्यकता होती है, इसलिए हमें विभाजन मान को बनाए रखने के लिए BsonDocumentWrapper का उपयोग करना होगा (IDivision प्रकार पैरामीटर IDivision को क्रमांकन पर नाममात्र प्रकार सेट करता है जिसके परिणामस्वरूप "_t" विवेचक लिखा जा रहा है) ।