Introduction to MongoDB $push Operator

The $push operator is an update operator in MongoDB used to append one or multiple values to the end of an array.

Syntax

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

Use Cases

The $push operator is used when one or more values need to be added to an existing array within a document.

Example

Assuming there is a collection named users with the following documents:

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

The following example adds a new element to the scores array:

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

After executing the update operation above, the contents of the users collection are as follows:

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

The following example adds multiple elements to the scores array:

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

After executing the update operation above, the contents of the users collection are as follows:

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

Conclusion

The $push operator is an update operator in MongoDB used to append one or multiple values to the end of an array. Multiple elements can be added to the array by using the $each option during the update operation.