有没有办法更新(或删除)符合特定条件的许多文档,并获取实际更新/删除的文档(或这些文档的其他一些字段)的ID列表?我不能事先查询符合我标准的文档,因为我需要这种操作的原子性。我不能使用findAndModify,因为它只能处理一个文件,因为往返太慢。建议?
答案 0 :(得分: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});
不理想,不是原子的,但它会像你在这种情况下一样好。