在mongodb中查找更新和更新

mes*_*600 3 mongodb mongomapper findandmodify

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

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

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

Joh*_*one 6

区别在于FindAndModify()在一个原子操作中返回文档,包括更新前版本或更新后版本,以及更新.更新是原子的,但不会返回文档,因此如果您再查询它,那么它可能会被临时的另一个进程更改.

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

请注意,这是针对单个文档 - 更新可以修改多个文档,findandmodify不能.

另外,findandmodify()可以删除文件,而update()则不能.

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