📜  MongoDB - $push 操作符(1)

📅  最后修改于: 2023-12-03 15:32:56.298000             🧑  作者: Mango

MongoDB - $push 操作符

在 MongoDB 中,$push 操作符用于向一个已有数组中添加一个值。

语法
db.collection.update(
   { <query> },
   { $push: { <field>: <value> } },
   { multi: true/false }
)
  • <query>: 指定更新文档的查询条件
  • <field>: 指定要更新的字段名
  • <value>: 指定要添加到数组中的值
  • multi: 可选参数,指定是否更新多个文档
示例

假设我们有以下信息:

{
  "_id": 1,
  "name": "小明",
  "tags": ["A", "B"]
}

要向 "tags" 数组中添加一个 "C",可以使用以下命令:

db.collection.update(
   { _id: 1 },
   { $push: { tags: "C" } }
)

更新后的文档如下:

{
  "_id": 1,
  "name": "小明",
  "tags": ["A", "B", "C"]
}

如果要添加多个值,只需要将其放在一个数组中即可:

db.collection.update(
   { _id: 1 },
   { $push: { tags: { $each: ["C", "D"] } } }
)

更新后的文档如下:

{
  "_id": 1,
  "name": "小明",
  "tags": ["A", "B", "C", "D"]
}
注意事项
  • 如果指定的字段不存在,$push 操作符会创建一个新的数组,并将值添加到其中
  • 如果数组中已经有了要添加的值,$push 操作符不会重复添加
  • 如果要添加的值是一个文档,它将作为一个整体添加到数组中
  • 如果要添加的数组中的值也是数组,可以使用 $each 操作符将其展开并添加到数组中