MongoDB understøtter ikke den slags betingede opdatering, du leder efter. Du kan dog stadig gøre det bedre end at bruge en find, loop og gem tilgang.
Flyt tilstandskontrollen til update
forespørgselsvælger og udsend derefter to opdateringer (en for hvert tilfælde) ved hjælp af {multi: true}
for at anvende opdateringen på alle matchede dokumenter.
// 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.
}
)
}
)