Definition
$eachThe
$eachmodifier is available for use with the$addToSetoperator and the$pushoperator.Use with the
$addToSetoperator to add multiple values to an array<field>if the values do not exist in the<field>.{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } } Use with the
$pushoperator to append multiple values to an array<field>.{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } } The
$pushoperator can use$eachmodifier with other modifiers. For a list of modifiers available for$push, see Modifiers.
Behavior
In MongoDB 4.4 and earlier, update operators process document fields in lexicographic order. See Update Operators Behavior for details.
Examples
Use $each with $push Operator
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 $each with $addToSet Operator
A collection inventory has the following document:
{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }
Then the following operation uses the $addToSet operator
with the $each modifier to add multiple elements to the
tags array:
db.inventory.update( { _id: 2 }, { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } } )
The operation adds only "camera" and "accessories" to the
tags array since "electronics" already exists in the array:
{ _id: 2, item: "cable", tags: [ "electronics", "supplies", "camera", "accessories" ] }