MongoDBは、探している種類の条件付き更新をサポートしていません。ただし、検索、ループ、保存のアプローチを使用するよりも優れた方法を実行できます。
条件チェックをupdate
に移動します セレクターを照会し、{multi: true}
を使用して2つの更新(各ケースに1つ)を発行します 一致したすべてのドキュメントに更新を適用します。
// 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.
}
)
}
)