Bird
Raised Fist0
MongoDBquery~5 mins

$push operator for adding to arrays in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the $push operator do in MongoDB?
The $push operator adds a specified value to an array field in a MongoDB document. If the array does not exist, it creates the array with the value.
Click to reveal answer
intermediate
How do you add multiple values at once to an array using $push?
You use $push with the $each modifier to add multiple values to an array in one operation.
Click to reveal answer
intermediate
Can $push be used to add elements in a sorted order?
Yes, by combining $push with $each and $sort, you can add elements and keep the array sorted.
Click to reveal answer
beginner
What happens if you use $push on a field that is not an array?
MongoDB will return an error because $push expects the field to be an array or missing. It cannot push to a non-array field.
Click to reveal answer
beginner
Write a simple MongoDB update query using $push to add the value 5 to the array field scores in documents where name is 'Alice'.
db.collection.updateOne({ name: 'Alice' }, { $push: { scores: 5 } })
Click to reveal answer
What does the $push operator do in MongoDB?
ACreates a new collection
BRemoves a value from an array
CReplaces an entire array
DAdds a value to an array field
Which modifier allows $push to add multiple values at once?
A$all
B$each
C$multi
D$add
How can you keep an array sorted when adding new elements with $push?
AUse <code>$sort</code> with <code>$each</code>
BUse <code>$order</code>
CUse <code>$sort</code> alone
DMongoDB sorts arrays automatically
What error occurs if $push is used on a non-array field?
AValue is ignored
BField is converted to an array automatically
COperation fails with an error
DMongoDB deletes the field
Which MongoDB command adds the number 10 to the array values in documents where type is 'A'?
Adb.collection.updateMany({ type: 'A' }, { $push: { values: 10 } })
Bdb.collection.insert({ type: 'A', values: 10 })
Cdb.collection.find({ type: 'A' }, { $push: { values: 10 } })
Ddb.collection.deleteMany({ type: 'A' }, { $push: { values: 10 } })
Explain how the $push operator works in MongoDB and give an example of adding multiple values to an array.
Think about updating documents with arrays and how to add one or many items.
You got /4 concepts.
    Describe how to keep an array sorted when adding new elements using $push.
    Consider how MongoDB can sort arrays during updates.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the $push operator do in MongoDB?
      easy
      A. Adds a new element to the end of an array field in a document
      B. Removes an element from an array field in a document
      C. Replaces the entire array field with a new array
      D. Creates a new collection in the database

      Solution

      1. Step 1: Understand the purpose of $push

        The $push operator is used to add elements to an existing array field inside a MongoDB document.
      2. Step 2: Compare with other options

        Options A, C, and D describe different operations: removing elements, replacing arrays, or creating collections, which are not what $push does.
      3. Final Answer:

        Adds a new element to the end of an array field in a document -> Option A
      4. Quick Check:

        $push adds elements [OK]
      Hint: Remember: $push always adds to array end [OK]
      Common Mistakes:
      • Confusing $push with $pull (which removes items)
      • Thinking $push replaces the whole array
      • Mixing $push with collection creation commands
      2. Which of the following is the correct syntax to add the value 5 to the array field numbers in a document where _id is 1?
      easy
      A. db.collection.updateOne({_id: 1}, {$push: {numbers: 5}})
      B. db.collection.updateOne({_id: 1}, {$push: numbers: 5})
      C. db.collection.updateOne({_id: 1}, {$push: {numbers => 5}})
      D. db.collection.updateOne({_id: 1}, {$push: {numbers: [5]}})

      Solution

      1. Step 1: Identify correct $push syntax

        The correct syntax uses an object with the field name as key and the value to add as value: {$push: {field: value}}.
      2. Step 2: Analyze each option

        db.collection.updateOne({_id: 1}, {$push: {numbers: 5}}) matches the correct syntax. db.collection.updateOne({_id: 1}, {$push: numbers: 5}) misses curly braces around the field-value pair. db.collection.updateOne({_id: 1}, {$push: {numbers => 5}}) uses an invalid arrow syntax. db.collection.updateOne({_id: 1}, {$push: {numbers: [5]}}) pushes the array [5] as a single element instead of adding the scalar value 5.
      3. Final Answer:

        db.collection.updateOne({_id: 1}, {$push: {numbers: 5}}) -> Option A
      4. Quick Check:

        Correct $push syntax uses {$push: {field: value}} [OK]
      Hint: Use {$push: {field: value}} with braces [OK]
      Common Mistakes:
      • Omitting braces around field-value pair
      • Using wrong symbols like => instead of :
      • Pushing an array when a single value is intended
      3. Given the document { _id: 1, tags: ["red", "blue"] }, what will be the tags array after running db.collection.updateOne({_id: 1}, {$push: {tags: "green"}})?
      medium
      A. ["red", "blue"]
      B. ["red", "green", "blue"]
      C. ["green", "red", "blue"]
      D. ["red", "blue", "green"]

      Solution

      1. Step 1: Understand $push effect on array

        The $push operator adds the new element to the end of the existing array.
      2. Step 2: Apply $push to the given array

        Starting with ["red", "blue"], pushing "green" adds it at the end, resulting in ["red", "blue", "green"].
      3. Final Answer:

        ["red", "blue", "green"] -> Option D
      4. Quick Check:

        New item added at array end [OK]
      Hint: Remember $push adds at the end of array [OK]
      Common Mistakes:
      • Assuming $push adds at the start
      • Replacing the whole array instead of adding
      • Confusing order of elements after push
      4. You want to add multiple values ["yellow", "purple"] to the colors array in a document with _id: 2. Which update command will NOT work correctly?
      medium
      A. db.collection.updateOne({_id: 2}, {$push: {colors: { $each: ["yellow", "purple"] }}})
      B. db.collection.updateOne({_id: 2}, {$push: {colors: ["yellow", "purple"]}})
      C. db.collection.updateOne({_id: 2}, {$push: {colors: {$each: ["yellow", "purple"]}}})
      D. db.collection.updateOne({_id: 2}, {$push: {colors: { $each: ["yellow", "purple" ] }}})

      Solution

      1. Step 1: Understand how to push multiple items

        To add multiple items to an array, $push must be combined with $each inside the update document.
      2. Step 2: Analyze each option

        Options B, C, and D correctly use $each to add multiple values. db.collection.updateOne({_id: 2}, {$push: {colors: ["yellow", "purple"]}}) tries to push an array directly, which will add the entire array as a single element, not multiple elements.
      3. Final Answer:

        db.collection.updateOne({_id: 2}, {$push: {colors: ["yellow", "purple"]}}) -> Option B
      4. Quick Check:

        Use $each to push multiple items [OK]
      Hint: Use $each inside $push for multiple items [OK]
      Common Mistakes:
      • Pushing an array directly instead of using $each
      • Forgetting curly braces around $each
      • Using wrong operators like $addToSet instead of $push
      5. You have a document { _id: 3, tasks: ["task1"] }. You want to add "task2" and "task3" only if they are not already in the array. Which update command correctly achieves this?
      hard
      A. db.collection.updateOne({_id: 3}, {$push: {tasks: { $each: ["task2", "task3"] }}})
      B. db.collection.updateOne({_id: 3}, {$push: {tasks: { $addToSet: ["task2", "task3"] }}})
      C. db.collection.updateOne({_id: 3}, {$addToSet: {tasks: { $each: ["task2", "task3"] }}})
      D. db.collection.updateOne({_id: 3}, {$push: {tasks: ["task2", "task3"]}})

      Solution

      1. Step 1: Understand difference between $push and $addToSet

        $push adds items regardless of duplicates. $addToSet adds items only if they don't exist already.
      2. Step 2: Analyze the commands

        db.collection.updateOne({_id: 3}, {$addToSet: {tasks: { $each: ["task2", "task3"] }}}) uses $addToSet with $each to add multiple unique items. Options A and D use $push which can add duplicates. db.collection.updateOne({_id: 3}, {$push: {tasks: { $addToSet: ["task2", "task3"] }}}) incorrectly nests $addToSet inside $push, which is invalid syntax.
      3. Final Answer:

        db.collection.updateOne({_id: 3}, {$addToSet: {tasks: { $each: ["task2", "task3"] }}}) -> Option C
      4. Quick Check:

        Use $addToSet with $each for unique additions [OK]
      Hint: Use $addToSet with $each to avoid duplicates [OK]
      Common Mistakes:
      • Using $push when duplicates should be avoided
      • Nesting $addToSet inside $push incorrectly
      • Forgetting $each when adding multiple items