首页 > 代码库 > Mongodb 关于update和findAndModify

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