0

私はmongoに拠点があり、そこに次のようなコレクションがあります。

 array (
'list' => 
 array (
  0 => '51af6f4c4b6061e10a000164',
  1 => '51af6f4c4b6061e10a000165',
 ),
 'user_id' => '522d6a134b6061b67100000f',

)

リスト配列には、すべてのIDのユーザーが友達であるリストがあります。問題は、ベース内のすべての ID を別の ID に変更する必要があることです。配列リストですべての 51af6f4c4b6061e10a000165 を 51af6f4c4b6061e10a000166 に変更したいとしましょう。すべてのリストのコレクション全体でそれを行うにはどうすればよいですか。

どんなアイデアでも役に立ちます!

mysqlと比較して、私はmongoにあまり慣れていません。

4

1 に答える 1

1

こちらのドキュメントを確認してください: DOCまたはこちらDOC

あなたがしなければならないことは、更新のために multi:true オプションで位置演算子を使用することです:

db.collection.update({list:'51af6f4c4b6061e10a000165'},{$set:{'list.$':'51af6f4c4b6061e10a000166'}},{ multi: true })

2 つの制限がある場合にのみ機能します。まず、新しい ID が既にリストにある場合、その後 2 回表示されます。古い ID がリスト内で複数回ある場合、これは最初の出現のみを変更します。

于 2013-09-11T14:03:05.917 に答える