Bạn có thể sử dụng tính năng sửa đổi mảng vị trí của MongoDB để cập nhật toàn bộ bộ phận trong mảng cùng một lúc như sau:
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))
);
Những điều quan trọng đang diễn ra ở đây là:
- Việc sử dụng "$" trong Update.Set
- Vì Update.Set yêu cầu BsonValue làm đối số thứ hai của nó, nên chúng tôi phải sử dụng BsonDocumentWrapper để giữ giá trị phân chia (tham số kiểu IDivision để Tạo đặt nominalType khi tuần tự hóa thành IDivision, dẫn đến dấu phân biệt "_t" được viết) .