更新

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

方法

  • 更新()
  • 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" }