$each
Definition
Use with the $addToSet
operator to add multiple values toan array <field>
if the values do not exist in the <field>
.
- { $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } }
Use with the $push
operator to append multiple values toan array <field>
.
- { $push: { <field>: { $each: [ <value1>, <value2> ... ] } } }
The $push
operator can use $each
modifier withother modifiers. For a list of modifiers available for$push
, see Modifiers.
Examples
Use $each with $push Operator
The following example appends each element of [ 90, 92, 85 ]
tothe scores
array for the document where the name
fieldequals 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
operatorwith the $each
modifier to add multiple elements to thetags
array:
- db.inventory.update(
- { _id: 2 },
- { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } }
- )
The operation adds only "camera"
and "accessories"
to thetags
array since "electronics"
already exists in the array:
- {
- _id: 2,
- item: "cable",
- tags: [ "electronics", "supplies", "camera", "accessories" ]
- }