Du kan bruge den positionelle array-modifikationsfunktion i MongoDB til at opdatere en hel division i arrayet på én gang som følger:
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))
);
De vigtigste ting, der foregår her, er:
- Brugen af "$" i Update.Set
- Da Update.Set kræver en BsonValue som sit andet argument, er vi nødt til at bruge en BsonDocumentWrapper til at holde divisionsværdien (IDivision type parameteren til Create indstiller nominalType ved serialisering til IDivision, hvilket resulterer i, at "_t" diskriminatoren skrives) .