0

特定の基準に一致する多くのドキュメントを更新(または削除)して、実際に更新/削除されたドキュメント(またはそれらのドキュメントの他のフィールド)のIDのリストを取得する方法はありますか?この操作にはちょっとした原子性が必要なので、事前に基準に一致するドキュメントを単純にクエリすることはできません。また、findAndModifyは一度に1つのドキュメントしか処理できないため、ラウンドトリップのために処理が遅すぎるため、使用できません。提案?

4

1 に答える 1

0

MongoDB は、1 つのドキュメントに対するアトミック操作のみをサポートします。
http://www.mongodb.org/display/DOCS/Atomic+Operations

これを行う唯一の方法は、あなたがしなかったと言ったことをすることです:

最初にコレクションにクエリを実行して、クエリの ID を見つけます。

db.things.find({"name":"john"}, {_id:1});

次に、同じクエリを使用して以下を削除します。

db.things.remove({"name":"john"}, {_id:1});

理想的ではなく、アトミックではありませんが、このシナリオで得られるのと同じくらい良いです。

于 2012-11-19T13:47:52.320 に答える