MongoDB không hỗ trợ loại cập nhật có điều kiện mà bạn đang tìm kiếm. Tuy nhiên, bạn vẫn có thể làm tốt hơn việc sử dụng phương pháp tìm, lặp và lưu.
Di chuyển kiểm tra điều kiện vào update
công cụ chọn truy vấn và sau đó phát hành hai bản cập nhật (một bản cho mỗi trường hợp), sử dụng {multi: true}
để áp dụng bản cập nhật cho tất cả các tài liệu phù hợp.
// 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.
}
)
}
)