2

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

谢谢。

4

3 回答 3

4

您可以使用多参数为 true 的update()方法。

于 2012-08-02T15:55:39.980 回答
2

文档页面

该命令可用于原子地修改一个文档(最多一个)并返回它

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

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

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

于 2012-08-02T15:58:26.913 回答
1

findAndModify() 操作一次只适用于一个文档。如果您希望它应用于多个文档,则必须使用 find() 操作查询这些文档,并一次将 findAndModify() 应用于这些文档中的每一个。

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

于 2012-08-02T16:23:20.850 回答