The updateMany with $push adds 10 to the values array for all documents where type is 'A'.
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
Step 1: Understand the purpose of $push
The $push operator is used to add elements to an existing array field inside a MongoDB document.
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.
Final Answer:
Adds a new element to the end of an array field in a document -> Option A
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
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}}.
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.
Final Answer:
db.collection.updateOne({_id: 1}, {$push: {numbers: 5}}) -> Option A
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
Step 1: Understand $push effect on array
The $push operator adds the new element to the end of the existing array.
Step 2: Apply $push to the given array
Starting with ["red", "blue"], pushing "green" adds it at the end, resulting in ["red", "blue", "green"].
Final Answer:
["red", "blue", "green"] -> Option D
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"]}}})
To add multiple items to an array, $push must be combined with $each inside the update document.
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.
Final Answer:
db.collection.updateOne({_id: 2}, {$push: {colors: ["yellow", "purple"]}}) -> Option B
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
Step 1: Understand difference between $push and $addToSet
$push adds items regardless of duplicates. $addToSet adds items only if they don't exist already.
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.