Definição
$eachO modificador
$eachestá disponível para uso com o operador$addToSete o operador$push.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> ... ] } } } O operador
$pushpode utilizar o modificador$eachcom outros modificadores. Para uma lista de modificadores disponíveis para$push, consulte Modificadores.
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 $push operador
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 $addToSet operador
Uma collection inventory possui o seguinte documento:
db.inventory.insertOne ( { _id: 2, item: "cable", tags: [ "electronics", "supplies" ] } )
Em seguida, a operação a seguir usa o operador $addToSet com o modificador $each para adicionar vários elementos à array tags:
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" ] }