📜  MongoDB –使用MongoShell替换文档

📅  最后修改于: 2021-04-17 04:09:12             🧑  作者: Mango

在MongoDB中,允许您借助db.collection.replaceOne()方法将现有文档替换为集合中的新文档。此方法将用替换文档替换现有文档。

replaceOne()是一种mongo shell方法,一次只能替换一个文档。与原始文档相比,替换文档可能包含不同的字段。

  • 我们知道_id字段是不可变的,因此您可以在替换文档中省略_id字段。并且,如果要在替换文档中添加_id字段,则_id字段的值与当前值相同,并且如果使用其他值,则会收到错误消息。
  • 替换文档只能包含字段-值对。它不包含更新运算符表达式。
  • 此方法用替换文档替换满足集合中给定条件的第一个文档。换句话说,如果多个文档满足给定条件,则此方法将用匹配给定过滤器或条件的替换文档替换第一个文档。
  • 此方法可用于多文档交易中。

例子:

在以下示例中,我们正在使用:

db.collection.replaceOne(
   ,
   ,
   {
     upsert: ,
     writeConcern: ,
     collation: ,
     hint:                    
   }
)

替换第一个文档:

在此示例中,我们将用替换文档替换雇员集合的第一个文档,即{name: "Rohit", age: 20, branch: "CSE", department: "HR"} ,即{name: "Anu", age: 30, branch: "EEE", department: "HR", joiningYear: 2018}使用replaceOne()方法。

Database: GeeksforGeeks
Collection: employee
Document: three documents that contain the details of the employees in the form of field-value pairs.

替换与过滤器匹配的单个文档:

在此示例中,我们将替换给定条件或过滤器的雇员集合的文档(即name: "Sonu"替换为替换文档,即{name: "Sonu", age: 25, branch: "CSE", department: "Designing"}使用replaceOne()方法。换句话说,在此示例中,我们将替换名为Sonu的员工的文档。

替换文件:

在此示例中,我们将用替换文档替换文档。在这里,多个文档与过滤器匹配,即名称:“ Sonu”,因此replaceOne()方法将替换这些文档中与给定条件匹配的第一个文档,如下图所示–

更换前:


更换后: