MongoDB tidak mendukung jenis pembaruan bersyarat yang Anda cari. Namun, Anda masih dapat melakukan yang lebih baik daripada menggunakan pendekatan find, loop, dan save.
Pindahkan cek kondisi ke update
pemilih kueri dan kemudian mengeluarkan dua pembaruan (satu untuk setiap kasus), menggunakan {multi: true}
untuk menerapkan pembaruan ke semua dokumen yang cocok.
// Start with the "if" update
Documents.update(
{some_condition: true, "some field": "some condition"},
{$set: {"status": "value 1"}},
{multi: true},
function(err, numAffected) {
// Now do the "else" update, using $ne to select the rest of the docs
Documents.update(
{some_condition: true, "some field": {$ne: "some condition"}},
{$set: {"status": "value 2"}},
{multi: true},
function(err, numAffected) {
// All done.
}
)
}
)