MongoDB – db.collection.findOneAndReplace() 方法
findOneAndReplace()方法根据给定的选择标准替换第一个匹配的文档。默认情况下,此方法返回原始文档。要返回替换文档,请将 returnNewDocument 选项的值设置为 true。它需要八个参数,第一个参数是选择标准,第二个参数是替换文档。其他都是可选的。使用此方法您还可以替换嵌入的文档。您也可以在多文档交易中使用此方法。
句法:
db.Collection_name.findOneAndReplace(
selection_criteria:
replacement:
{
projection:
sort:
maxTimeMS:
upsert:
returnNewDocument:
collation:
})
参数:
- 第一个参数是用新文档替换文档的选择标准。
- 第二个参数是替换文档。
- 第三个参数是可选的。
可选参数:
- 投影:该参数的类型是文档。它确定哪些字段返回到匹配的文档。本文档需要:
{ field1: , field2: ... }
这里如果字段的值为1/true则指定包含该字段,或者如果该字段的值为0/false则指定排除该字段。
- sort:如果查询选择多个文档,它决定了操作将修改哪个文档。 findOneAndReplace() 将按此参数指定的排序顺序替换第一个文档。该参数的类型是文档。
- maxTimeMS:该参数的类型为数字。它指定操作必须完成的时间限制(以毫秒为单位)。如果超过时间限制,它会抛出错误。
- upsert:该参数的默认值为false。如果此选项的值设置为 true 并且没有文档与给定的过滤器查询匹配,则此方法根据替换参数创建一个新文档并返回 null(插入新文档后),除非 returnNewDocument 选项的值设置为 true .或者,如果此 upsert 选项的值设置为 true,则此方法将与给定过滤器查询匹配的文档替换为替换文档。
- returnNewDocument:该参数的类型是布尔值。默认情况下,此方法返回原始文档。要返回替换文档,请使用 returnNewDocument 选项并将其值设置为 true。
- 排序规则:它指定使用排序规则进行操作。它允许用户为字符串比较指定特定于语言的规则,例如字母和重音标记的规则。该参数的类型是文档。
返回:
默认情况下,此方法返回原始文档。要返回替换文档,请使用 returnNewDocument 选项并将其值设置为 true。
例子:
在以下示例中,我们正在使用:
Database: gfg
Collections: student
Document: Four documents contains name and the age of the students
- 替换第一个匹配的年龄为 17 的文档并返回替换的文档:
db.student.findOneAndReplace({age:17},{name:"Mihir", age:17})
在这里,我们从学生集合中找到与给定过滤器查询(即年龄:17)匹配的文档,然后使用新文档(即{name:”Mihir”,年龄:17})替换匹配的文档findOneAndReplace() 方法。在这里,此方法返回原始文档。
更换后:
- 替换第一个匹配的年龄为 17 的文档并返回一个新文档:
db.student.findOneAndReplace({age:17},{name:"Sagar", age:17},
{returnNewDocument:true})
在这里,我们从学生集合中找到与给定过滤器查询(即年龄:17)匹配的文档,然后使用新文档(即{name:”Sagar”,年龄:17})替换匹配的文档findOneAndReplace() 方法。此处,此方法返回新文档,因为 returnNewDocument 选项的值设置为 true。
更换后: