0

有没有办法更新(或删除)许多符合特定条件的文档并获取实际更新/删除的文档(或这些文档的某些其他字段)的 ID 列表?我不能简单地事先查询符合我的条件的文档,因为我需要这个操作的原子性。而且我不能使用 findAndModify 因为它一次只能处理一个文档,因为往返太慢了。建议?

4

1 回答 1

0

MongoDB 仅支持对单个文档的原子操作。
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 回答