3

MongoDB の更新クエリで自己参照値を取得することは可能ですか? MySQL では、次を実行できます。

UPDATE table SET column1 = column2 + column3,...

私の知る限り、MongoDB のサーバー側でこれを行うために使用できるのは MapReduce だけです。MapReduce を使用してこれを行うにはどうすればよいですか?

4

1 に答える 1

3

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
} )
于 2012-04-15T06:23:39.230 に答える