O MongoDB não suporta o tipo de atualização condicional que você está procurando. No entanto, você ainda pode fazer melhor do que usar uma abordagem de localizar, fazer um loop e salvar.
Mova a verificação de condição para o
update
seletor de consulta e, em seguida, emita duas atualizações (uma para cada caso), usando {multi: true}
para aplicar a atualização a todos os documentos correspondentes. // 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.
}
)
}
)