Mongodb 关于update和findAndModify

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb 关于update和findAndModify相关的知识,希望对你有一定的参考价值。

db.collection.update

修改集合中的现有文档或文档。 该方法可以根据更新参数修改现有文档的特定字段或文档,或者完全替换现有文档。

默认情况下,update()方法更新单个文档。 设置多参数以更新与查询条件匹配的所有文档。

update可以更新多个文档,但是Mongodb只保证单个文档的写入是原子性的。

db.collection.findAndModify(document)

修改并返回单个文档。

当修改单个文档时,findAndModify()和update()方法都将原子地更新文档。

 

更新文档时,findAndModify()和update()方法的操作方式不同:

默认情况下,两个操作都会修改单个文档。但是,具有多选项的update()方法可以修改多个文档。

如果多个文档与更新条件匹配,对于findAndModify(),您可以指定一种排序来提供对要更新的文档的一些控制措施。

使用update()方法的默认行为,当多个文档匹配时,不能指定要更新的单个文档。

默认情况下,findAndModify()返回文档的预修改版本。要获取更新的文档,请使用新选项。

update()方法返回一个包含操作状态的WriteResult对象。要返回更新的文档,请使用find()方法。但是,其他更新可能已经在更新和文档检索之间修改了文档。此外,如果更新仅修改了单个文档,但是多个文档匹配,则需要使用其他逻辑来标识更新的文档。

以上是关于Mongodb 关于update和findAndModify的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB数据update的坑

如何提高 MongoDB 中 update() 和 save() 的性能?

mongoDB 学习七

Mongodb数据更新命令(updatesave)

Mongodb数据更新命令操作符

mongodb更新操作