Mongodb findAndModify每个文件

时间:2012-08-02 15:51:30

标签: mongodb nosql

有没有办法将mongo的findAndModify应用于符合条件的每个文档,而不仅仅是第一个?我在mongodb.org上找不到它。

感谢。

3 个答案:

答案 0 :(得分:4)

您可以将update()方法与多参数一起使用为真。

答案 1 :(得分:2)

来自docs page

  

此命令可用于原子修改文档(最多一个)   并将其归还

所以,不,你只能在这里一次操作一个。因此,除非您遍历每个文档,否则您将无法以这种方式使用findAndModify。另外,通过findAndModify的工作方式,在大型数据集上执行此操作的性能会非常糟糕。

您真正想要做的是使用update命令来实现这种类型的事情:

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

答案 2 :(得分:1)

findAndModify()操作一次只能应用于一个文档。如果要将其应用于多个文档,则必须使用find()操作查询这些文档,并一次将findAndModify()应用于每个文档。

请注意,虽然各个findAndModify()命令是原子的,但是从上面的循环运行的findAndModify()命令集不是原子的。