3

式を使用してフィールドを更新する必要があります。が与えられたDBObject query場合、与えられたフィールドを引数でどのように乗算または除算できますvalueか?

このような操作を実行する関数を Java で記述するにはどうすればよいですか。

function(DBObject queryObject, String fieldToUpdate, Double argumentValue) { 
    collection.find(queryObject).forEach(function(e) {
        // update field given by input argument "fieldToUpdate", something like..
        // e.put(fieldToUpdate, e.get(fieldToUpdate)/argumentValue); ??
        collection.save(e);
    });
}

"$set"and find()orを使用することは可能findAndModify()ですか? はいの場合、次のような式を使用して既存の値を更新するにはどうすればよいexistingValue / argumentValueですか?

4

1 に答える 1

1

現在、MongoDB では、フィールドの既存の値に従ってフィールドの値を更新することはできません。つまり、次の SQL は実行できません。

UPDATE foo SET field1 = field1 / 2;

MongoDB では、アプリケーションでこれを行う必要がありますが、読み取りと書き込みが必要になるため、これはもはやアトミック操作ではないことに注意してください。

于 2013-07-03T08:33:16.327 に答える