MongoDB Update 命令行

介绍

在 MongoDB 中,更新(Update)操作用于修改已存在的文档。MongoDB 提供了一系列的更新命令,用于满足不同的需求。

本文将介绍 MongoDB 中的常用更新命令行操作,并提供相应的代码示例和解释。

更新方法

updateOne

updateOne 方法用于更新匹配到的第一个文档。

db.collection.updateOne(
   <filter>,
   <update>,
   {
     upsert: <boolean>,
     writeConcern: <document>
   }
)
  • filter:指定筛选条件,用于匹配需要更新的文档。
  • update:指定更新的操作,可以是一个文档或一个更新操作符。
  • upsert:可选参数,如果设置为 true,则在没有匹配的文档时会插入新文档。
  • writeConcern:可选参数,用于指定写入操作的安全级别。

下面是一个示例,我们将更新集合 usersname 为 "John" 的第一个文档,将 age 字段增加 1。

db.users.updateOne(
   { name: "John" },
   { $inc: { age: 1 } }
)

updateMany

updateMany 方法则用于更新匹配到的所有文档。

db.collection.updateMany(
   <filter>,
   <update>,
   {
     upsert: <boolean>,
     writeConcern: <document>
   }
)

updateOne 方法类似,updateMany 方法也接受相同的参数,并根据筛选条件匹配到多个文档进行更新。

下面是一个示例,我们将更新集合 usersname 为 "John" 的所有文档,将 age 字段增加 1。

db.users.updateMany(
   { name: "John" },
   { $inc: { age: 1 } }
)

replaceOne

replaceOne 方法用于替换匹配到的第一个文档。

db.collection.replaceOne(
   <filter>,
   <replacement>,
   {
     upsert: <boolean>,
     writeConcern: <document>
   }
)
  • replacement:指定要替换的文档。

下面是一个示例,我们将替换集合 usersname 为 "John" 的第一个文档,将其替换为一个新的文档。

db.users.replaceOne(
   { name: "John" },
   { name: "Mike", age: 30, email: "mike@example.com" }
)

更新操作符

在更新操作中,我们可以使用多种更新操作符来实现不同的更新操作。

$set

$set 操作符用于设置字段的值。

db.collection.updateOne(
   <filter>,
   { $set: { <field1>: <value1>, ... } }
)

下面是一个示例,我们将集合 usersname 为 "John" 的文档的 age 字段设置为 30。

db.users.updateOne(
   { name: "John" },
   { $set: { age: 30 } }
)

$inc

$inc 操作符用于增加字段的值。

db.collection.updateOne(
   <filter>,
   { $inc: { <field1>: <value1>, ... } }
)

下面是一个示例,我们将集合 usersname 为 "John" 的文档的 age 字段增加 2。

db.users.updateOne(
   { name: "John" },
   { $inc: { age: 2 } }
)

$unset

$unset 操作符用于删除字段。

db.collection.updateOne(
   <filter>,
   { $unset: { <field1>: "", ... } }
)

下面是一个示例,我们将集合 usersname 为 "John" 的文档的 age 字段删除。

db.users.updateOne(
   { name: "John" },
   { $unset: { age: "" } }
)

$push

$push 操作符用于向数组字段中添加元素。

db.collection.updateOne(
   <filter>,
   { $push: { <field>: <value> } }
)