更新

要更新集合和文档,我们可以使用以下任何方法:

方法

  • 更新()
  • updateOne()
  • updateMany()
  • replaceOne()

更新()

update() 方法修改一个或多个文档(更新参数)

db.lights.update(
   { room: "Bedroom" },
   { status: "On" }
)

此操作在’lights’集合中搜索 roomBedroom (第一个参数) 的文档。然后它将匹配文档 status 属性更新为 On (第二个参数) 并返回一个如下所示的 WriteResult 对象:

{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }

UpdateOne

UpdateOne() 方法修改一个文档(更新参数)

db.countries.update(
   { country: "Sweden" },
   { capital: "Stockholm" }
)

此操作在’countries’集合中搜索 countrySweden 的文档 (第一个参数) 。然后它将匹配的文档属性 capital 更新为 Stockholm (第二个参数) 并返回一个如下所示的 WriteResult 对象:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

UpdateMany

UpdateMany() 方法修改多个文档(更新参数)

db.food.updateMany(
   { sold: { $lt: 10 } },
   { $set: { sold: 55 } }
)

通过将 sold 设置为 **55,**此操作更新 sold 小于 10 *(第一个参数)的所有文档 (在’food’集合中) 。然后它返回一个如下所示的 WriteResult 对象: **** ****

{ "acknowledged" : true, "matchedCount" : a, "modifiedCount" : b }

a =匹配文档
数 b =修改文档数

ReplaceOne

替换第一个匹配的文档(替换文档)

这个名为 countries 的示例集合包含 3 个文档:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Spain" }

以下操作用文件 { country: "Finland" } 替换文件 { country: "Spain" }

db.countries.replaceOne(
   { country: "Spain" },
   { country: "Finland" }
)

并返回:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

示例集合国家现在包含:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Finland" }