3

我正在使用 Update 和 FindAndModify 但现在我已经读到 Update 和 FindAndModify 是原子的(http://docs.mongodb.org/manual/tutorial/model-data-for-atomic-operations/),

因此,如果两者都可以通过查询项目并更新它来完成相同的工作,那么有什么区别?

我在 StackOverflow 上找到了几个答案,但没有一个提到 Update 也是原子的:在 MongoDB 中 findAndModify 和 update 有什么区别?

4

1 回答 1

8

不同之处在于 FindAndModify() 在一个原子操作中返回更新前或更新后版本的文档以及更新。更新是原子的,但不返回文档,因此如果您随后查询它,它可能会在此期间被另一个进程更改。

修改单个文档时,findAndModify() 和 update() 方法都会自动更新文档。

请注意,这是针对单个文档的 - update 可以修改多个文档, findandmodify 不能。

此外, findandmodify() 可以删除文档, update() 不能。

http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/

于 2014-07-17T22:29:20.160 回答