MongoDB $push 运算符介绍

$push 运算符是 MongoDB 中一种更新操作符,用于将一个或多个值添加到数组的末尾。

语法

{ $push: { <field1>: <value1>, ... } }

使用场景

当需要将一个或多个值添加到现有文档中的数组时,可以使用 $push 运算符。

示例

假设有以下名为 users 的集合:

> db.users.find()
{ "_id" : ObjectId("61fe47557dc8d97c21e492b0"), "name" : "Alice", "scores" : [ 80, 85, 90 ] }
{ "_id" : ObjectId("61fe47557dc8d97c21e492b1"), "name" : "Bob", "scores" : [ 75, 85 ] }

以下示例将向 scores 数组添加一个新元素:

> db.users.updateOne({ name: "Alice" }, { $push: { scores: 95 } })
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

执行上述更新操作后,users 集合的内容如下:

> db.users.find()
{ "_id" : ObjectId("61fe47557dc8d97c21e492b0"), "name" : "Alice", "scores" : [ 80, 85, 90, 95 ] }
{ "_id" : ObjectId("61fe47557dc8d97c21e492b1"), "name" : "Bob", "scores" : [ 75, 85 ] }

以下示例将向 scores 数组添加多个元素:

> db.users.updateOne({ name: "Bob" }, { $push: { scores: { $each: [ 80, 90, 95 ] } } })
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

执行上述更新操作后,users 集合的内容如下:

> db.users.find()
{ "_id" : ObjectId("61fe47557dc8d97c21e492b0"), "name" : "Alice", "scores" : [ 80, 85, 90, 95 ] }
{ "_id" : ObjectId("61fe47557dc8d97c21e492b1"), "name" : "Bob", "scores" : [ 75, 85, 80, 90, 95 ] }

结论

$push 运算符是 MongoDB 中一种更新操作符,用于将一个或多个值添加到数组的末尾。在更新操作时,可以通过 $each 选项向数组中添加多个元素。