Definição
$eachThe
$eachmodifier is available for use with the$addToSetoperator and the$pushoperator.Use com o operador
$addToSetpara adicionar vários valores a uma array<field>se os valores não existirem no<field>.{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } } Use com o operador
$pushpara acrescentar vários valores a uma 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.
Comportamento
A partir do MongoDB 5.0, os operadores de atualização processam campos de documento com nomes baseados em cadeia de caracteres em ordem lexicográfica. Os campos com nomes numéricos são processados em ordem numérica. Consulte Atualizar Comportamento de Operadores para detalhes.
Exemplos
Use $each com o operador $push
O exemplo a seguir anexa cada elemento de [ 90, 92, 85 ] à array scores para o documento onde o campo name é igual a joe:
db.students.updateOne( { name: "joe" }, { $push: { scores: { $each: [ 90, 92, 85 ] } } } )
Use $each com o operador $addToSet
Uma collection inventory possui o seguinte documento:
db.inventory.insertOne ( { _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.updateOne( { _id: 2 }, { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } } )
A operação só adiciona "camera" e "accessories" à array tags. "electronics" já estava na array:
{ _id: 2, item: "cable", tags: [ "electronics", "supplies", "camera", "accessories" ] }