2

最初のドキュメントだけでなく、条件に一致するすべてのドキュメントにmongoのfindAndModifyを適用する方法はありますか?mongodb.orgで見つかりませんでした。

ありがとう。

4

3 に答える 3

4

multiパラメーターをtrueとしてupdate()メソッドを使用できます。

于 2012-08-02T15:55:39.980 に答える
2

ドキュメントページから:

このコマンドを使用して、ドキュメント(最大で1つ)をアトミックに変更して返すことができます

したがって、ここでは一度に1つしか操作できません。したがって、すべてのドキュメントを反復処理しない限り、この方法でfindAndModifyを使用することはできません。さらに、findAndModifyが機能する方法では、大規模なデータセットでこれを実行するパフォーマンスはひどいものになります。

本当にやりたいことは、代わりにupdateコマンドを使用してこのタイプのことを実現することです。

http://www.mongodb.org/display/DOCS/Updating/#Updating-update%28%29

于 2012-08-02T15:58:26.913 に答える
1

findAndModify()操作は、一度に1つのドキュメントにのみ適用されます。複数のドキュメントに適用する場合は、find()操作を使用してそれらのドキュメントをクエリし、一度にそれらのドキュメントのそれぞれにfindAndModify()を適用する必要があります。

個々のfindAndModify()コマンドはアトミックですが、上記のループから実行する一連のfindAndModify()コマンドはアトミックではないことに注意してください。

于 2012-08-02T16:23:20.850 に答える