MongoDB - $push Operator - GeeksforGeeks

10 May, 2020
MongoDB provides different types of array update operators to update the values of the array fields in the documents and $push operator is one of them. This operator is used to append a specified value to an array.
Syntax:
{ $push: { <field1>: <value1>, ... } }
Here, <field> can specify with dot notation in embedded/nested documents or an array.
If the specified field in the $push operator is not present in the document, then this operator will add the array field with the value as its items.
The $push operator insert items at the end of the array.
If the specified field in the $push operator is not an array, then this operation will fails.
If the value of the $push operator is an array, then this operator will append the whole array as a single element. And if you want to add each item of the value separately, then you can use $each modifier with $push operator.
You can use this operator with methods like update(), findAndModify(), etc., according to your requirement.
We can also use the following modifiers with the $push operator :Syntax:
{ $push: { <field1>: { <modifier1>: <value1>, ... }, ... } }
The processing of the push operation with modifiers works in the following order:
First update the array to add items in the correct position.
Second, apply sort if specified.
Third slice the array if specified.
Fourth store the array.
Note: Here the order in which the modifiers appear in the $push operator does not matter.
In the following examples, we are working with:
Database: GeeksforGeeksCollection: contributorDocument: two documents that contain the details of the contributor in the form of field-value pairs.
In this example, we are appending a single value, i.e., “C++” to an array field, i.e., language field in the document that satisfy the condition(name: “Rohit”).
db.contributor.update({name: "Rohit"}, {$push: {language: "C++"}})
In this example, we are appending multiple values, i.e., [“C”, “Ruby”, “Go”] to an array field, i.e., language field in the document that satisfy the condition(name: “Sumit”).
db.contributor.update({name: "Sumit"}, {$push: {language: {$each: ["C", "Ruby", "Go"]}}})
In this example, we are appending multiple values, i.e., [89, 76.4] to an array field, i.e., personal.semesterMarks field of a nested/embedded document.
db.contributor.update({name: "Sumit"},                       {$push: {"personal.semesterMarks": {$each: [89, 76.4]}}})
In this example, we are using multiple modifiers like $each, $sort, and $slice with $push operator.
db.contributor.update({name: "Rohit"},                      {$push: { language: { $each: ["C", "Go"],                                $sort: 1, $slice: 4}}})
Here,
The $each modifier is used to add multiple documents to the language array.
The $sort modifier is used to sort all the items of the modified language array in ascending.
The $slice modifier is used to keep only the first four sorted items of the language array.
MongoDB
MongoDB-operators
MongoDB
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
MongoDB - Distinct() Method
How to connect MongoDB with ReactJS ?
MongoDB - limit() Method
MongoDB - FindOne() Method
MongoDB insertMany() Method - db.Collection.insertMany()
MongoDB updateOne() Method - db.Collection.updateOne()
MongoDB - Update() Method
Create user and add role in MongoDB
MongoDB - sort() Method