How do i push data into an array in mongodb?

  • Reference >
  • Operators >
  • Update Operators >
  • Array Update Operators >
  • $push

Definition¶

$push

The $push operator appends a specified value to an array.

The $push operator has the form:

{ $push: { : , ... } }

To specify a in an embedded document or in an array, use dot notation.

Behavior¶

If the field is absent in the document to update, $push adds the array field with the value as its element.

If the field is not an array, the operation will fail.

If the value is an array, $push appends the whole array as a single element. To add each element of the value separately, use the $each modifier with $push. For an example, see Append a Value to Arrays in Multiple Documents. For a list of modifiers available for $push, see Modifiers.

Modifiers¶

You can use the $push operator with the following modifiers:

ModifierDescription
$each Appends multiple values to the array field.
$slice Limits the number of array elements. Requires the use of the $each modifier.
$sort Orders elements of the array. Requires the use of the $each modifier.
$position Specifies the location in the array at which to insert the new elements. Requires the use of the $each modifier. Without the $position modifier, the $push appends the elements to the end of the array.

When used with modifiers, the $push operator has the form:

{ $push: { : { : , ... }, ... } }

The processing of the push operation with modifiers occur in the following order, regardless of the order in which the modifiers appear:

  1. Update array to add elements in the correct position.
  2. Apply sort, if specified.
  3. Slice the array, if specified.
  4. Store the array.

Examples¶

Append a Value to an Array¶

The following example appends 89 to the scores array:

db.students.update[
   { _id: 1 },
   { $push: { scores: 89 } }
]

Append a Value to Arrays in Multiple Documents¶

Add the following documents to the students collection:

db.students.insertMany[ [
   { _id: 2, scores: [ 45, 78, 38, 80, 89 ] } ,
   { _id: 3, scores: [ 46, 78, 38, 80, 89 ] } ,
   { _id: 4, scores: [ 47, 78, 38, 80, 89 ] }
] ]

The following $push operation appends 95 to the scores array in each document:

db.students.updateMany[
   { },
   { $push: { scores: 95 } }
]

To confirm that each scores array includes 95, run the following operation:

The operation returns the following results:

[
   { _id: 1, scores: [ 44, 78, 38, 80, 89, 95 ] },
   { _id: 2, scores: [ 45, 78, 38, 80, 89, 95 ] },
   { _id: 3, scores: [ 46, 78, 38, 80, 89, 95 ] },
   { _id: 4, scores: [ 47, 78, 38, 80, 89, 95 ] }
]

Append Multiple Values to an Array¶

Use $push with the $each modifier to append multiple values to the array field.

The following example appends each element of [ 90, 92, 85 ] to the scores array for the document where the name field equals joe:

db.students.update[
   { name: "joe" },
   { $push: { scores: { $each: [ 90, 92, 85 ] } } }
]

Use $push Operator with Multiple Modifiers¶

A collection students has the following document:

{
   "_id" : 5,
   "quizzes" : [
      { "wk": 1, "score" : 10 },
      { "wk": 2, "score" : 8 },
      { "wk": 3, "score" : 5 },
      { "wk": 4, "score" : 6 }
   ]
}

The following $push operation uses:

  • the $each modifier to add multiple documents to the quizzes array,
  • the $sort modifier to sort all the elements of the modified quizzes array by the score field in descending order, and
  • the $slice modifier to keep only the first three sorted elements of the quizzes array.

db.students.update[
   { _id: 5 },
   {
     $push: {
       quizzes: {
          $each: [ { wk: 5, score: 8 }, { wk: 6, score: 7 }, { wk: 7, score: 6 } ],
          $sort: { score: -1 },
          $slice: 3
       }
     }
   }
]

The result of the operation is keep only the three highest scoring quizzes:

{
  "_id" : 5,
  "quizzes" : [
     { "wk" : 1, "score" : 10 },
     { "wk" : 2, "score" : 8 },
     { "wk" : 5, "score" : 8 }
  ]
}

How do I push in MongoDB?

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.

What MongoDB method would you use to insert an array of data?

MongoDB Array of Objects using insert[] with Example The “insert” command can also be used to insert multiple documents into a collection at one time.

How do I update an array in MongoDB?

You can use the updateOne[] or updateMany[] methods to add, update, or remove array elements based on the specified criteria. It is recommended to use the updateMany[] method to update multiple arrays in a collection.

How do arrays work in MongoDB?

Working with Arrays in MongoDB.
Introduction. ... .
Create and Query a Document. ... .
Add an Array Element. ... .
Update an Array Element. ... .
Delete an Array Element. ... .
Add a New Field to all Objects in the Array. ... .
Update a Specific Array Element Based on a Condition. ... .
Conclusion..

Chủ Đề