MongoDB の更新クエリで自己参照値を取得することは可能ですか? MySQL では、次を実行できます。
UPDATE table SET column1 = column2 + column3,...
私の知る限り、MongoDB のサーバー側でこれを行うために使用できるのは MapReduce だけです。MapReduce を使用してこれを行うにはどうすればよいですか?
MongoDB の更新クエリで自己参照値を取得することは可能ですか?
いいえ、この更新は通常の照会/更新システムでは実行できません。
私の知る限り、MongoDB のサーバー側でこれを行うために使用できるのは MapReduce だけです。
Map / Reduce は、既存のデータを要約し、そのデータを別のコレクション/テーブルに出力するために使用されます。Map / Reduce は、既存のデータを更新するためのものではありません。
この更新を MongoDB で実行するにfor
は、コレクション全体に対して単純なループを実行し、それぞれを更新する必要があります。これは、シェルを含む任意のドライバーから実行できます。
db.table.find().forEach( function(x) {
var newValue = x.column2 + x.column3; // Add column2 & 3
db.table.update({_id: x._id}, { $set: { column1: newValue } }); // Set the value on column1
} )