$each (Multiple Elements)
Last updated: 2026-10-09
$each (Multiple Elements)
$each supplies multiple values to $push and $addToSet. `{ $push: { tags: { $each: ['a', 'b', 'c'] } } }`. With $addToSet it adds each value after dedup. It cannot stand alone — it must nest inside $push or $addToSet — and composes with $position, $slice and $sort for advanced array maintenance.
| Category | Update Modifier |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $push: { <array field>: { $each: [ <value1>, <value2>, ... ] } } }
⚙️ Parameters
| array field | The array field to append to. |
|---|---|
| values array | The list of elements to add. |
Returns:The update result
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $each: append several tags
db.articles.updateOne(
{ _id: 1 },
{ $push: { tags: { $each: ['mongodb', 'database'] } } }
)
// $addToSet with $each adds deduped
db.articles.updateOne(
{ _id: 1 },
{ $addToSet: { tags: { $each: ['database', 'nosql'] } } }
)
Output:
// tags gains two values; on the second run database is skipped and nosql is added
📌 Notes
- Nests inside $push or $addToSet only
- $addToSet with $each dedups value by value
- Composes with $position, $slice and $sort
🏷️ Related Tags
💡 Related Cases
Array and Nested Document Queries
Document Update: A Detailed Explanation of `updateOne` and `updateMany`
📚 Related Tutorials
❓ FAQ
QCan $each be used alone?
ANo, it must be written inside $push or $addToSet.
QHow does $addToSet with $each dedup?
AEach value is checked individually; existing ones are skipped, so no duplicates remain.
QCan $each combine with $sort?
AYes, $sort after $each inside $push sorts after appending.