Anda dapat menggunakan fitur modifikasi array posisi dari MongoDB untuk memperbarui seluruh divisi dalam array sekaligus sebagai berikut:
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))
);
Hal-hal penting yang terjadi di sini adalah:
- Penggunaan "$" di Update.Set
- Sejak Update.Set memerlukan BsonValue sebagai argumen kedua, kita harus menggunakan BsonDocumentWrapper untuk menyimpan nilai pembagian (parameter tipe IDivision ke Create menetapkan nominalType pada serialisasi ke IDivision yang menghasilkan diskriminator "_t" yang ditulis) .