有没有办法将 mongo 的 findAndModify 应用于每个符合条件的文档,而不仅仅是第一个?我在 mongodb.org 上找不到它。
谢谢。
您可以使用多参数为 true 的update()方法。
从文档页面:
该命令可用于原子地修改一个文档(最多一个)并返回它
所以,不,你只能在这里一次操作一个。因此,除非您遍历每个文档,否则您将无法以这种方式使用 findAndModify。此外,使用 findAndModify 的工作方式,在大型数据集上执行此操作的性能将非常糟糕。
您真正想要做的是使用 update 命令来实现这种类型的事情:
http://www.mongodb.org/display/DOCS/Updating/#Updating-update%28%29
findAndModify() 操作一次只适用于一个文档。如果您希望它应用于多个文档,则必须使用 find() 操作查询这些文档,并一次将 findAndModify() 应用于这些文档中的每一个。
请注意,虽然单个 findAndModify() 命令是原子的,但您从上述循环运行的 findAndModify() 命令集不是原子的。