MongoDB学习记录(四) - MongoDB的"增查改删"操作之"改" 更新文档主要有以下几种方法:

  • db.collection.updateOne(filter, update, options)
  • db.collection.updateMany(filter, update, options)
  • db.collection.replaceOne(filter, update, options)

另外MongoDB提供了更新运算符,更加方便我们进行文档的更新。其使用方法如下:

{
  update operator: { field1: value1, ... },
  update operator: { field2: value2, ... },
  ...
}

其中有一些更新运算符,比如$set,当它所设置的字段不存在时,将会新增这个字段

更新一个文档

db.collection.updateOne(
  { item: "paper"},
  {
    $set: {"size.uom": "cm", status: "P"},
    $currentData: {lastModified: true}
  }
)

以上方法将会更新匹配到的第一个item字段值为"paper"的文档,$set运算符会将size.uom字段的值设置为"cm",status字段的值设置为"P"。$currentData运算符会将lastModified字段设置为当前时间,如果这个字段不存在,将新增这个字段

更新多个文档

如果将上述方法中的updateOne()改为updateMany(),则可以更新匹配到的所有文档

替换一个文档

如果想替换一个文档,用于替换的文档(即第二个参数)必须全有field: value对组成,不能包含更新运算符