使用できるもの:
db.collection.find().limit(NUMBER_OF_ITEMS_YOU_WANT_TO_UPDATE).forEach(
function (e) {
e.fieldToChange = "blah";
....
db.collection.save(e);
}
);
(forEachコードのクレジット:MongoDB:同じドキュメントのデータを使用してドキュメントを更新する)
これにより、指定したエントリの数のみが変更されます。したがって、たとえば、「コレクション」内のエントリの半分だけに値1の「newField」というフィールドを追加する場合は、
に入力できます。db.collection.find().limit(db.collection.count() / 2).forEach(
function (e) {
e.newField = 1;
db.collection.save(e);
}
);
次に、残りの半分にも「newField」を設定したいが、値が2の場合は、newFieldが存在しないという条件で更新を実行できます。
db.collection.update( { newField : { $exists : false } }, { $set : { newField : 2 } }, {multi : true} );