rmdir.cn

db.collection.findOneAndReplace()

原子查找并替换文档

语法

db.collection.findOneAndReplace(<filter>, <replacement>, <options>)

说明

原子地查找并整体替换一条文档。可返回替换前或替换后的文档。与 findOneAndUpdate 不同,此方法直接替换整条文档内容,不使用更新操作符。

参数

  • filter必填

    过滤条件

  • replacement必填

    新文档(不可含更新操作符)

  • returnNewDocument

    true 返回替换后的文档

  • sort

    匹配多条时排序选择

示例

替换并返回旧文档

替换用户数据并获取旧数据

db.users.findOneAndReplace({ _id: userId }, { name: "新名字", email: "new@test.com", age: 28 })

替换获取新数据

返回替换后的新文档

db.users.findOneAndReplace({ _id: userId }, newDoc, { returnNewDocument: true })