Definición
$eachEl modificador está disponible para su uso con
$eachel operador$addToSety el operador$push.Utilizar con el
$addToSetoperador para agregar múltiples valores al arreglo<field>si los valores no existen en el<field>.{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } } Utilizar con el operador
$pushpara añadir varios valores a un arreglo<field>.{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } } El operador
$pushpuede usar el modificador$eachcon otros modificadores. Para obtener una lista de los modificadores disponibles para$push, consulte Modificadores.
Comportamiento
A partir de MongoDB 5.0, los operadores de actualización procesan los campos de documentos con nombres basados en cadenas en orden lexicográfico. Los campos con nombres numéricos se procesan en orden numérico. Consulta Comportamiento del operador de actualización para obtener más información.
Ejemplos
Usa $each con el Operador $push
El siguiente ejemplo añade cada elemento de [ 90, 92, 85 ] al arreglo scores del documento donde el campo name es igual a joe:
db.students.updateOne( { name: "joe" }, { $push: { scores: { $each: [ 90, 92, 85 ] } } } )
Usa $each con el Operador $addToSet
Una colección inventory tiene el siguiente documento:
db.inventory.insertOne ( { _id: 2, item: "cable", tags: [ "electronics", "supplies" ] } )
A continuación, la siguiente operación utiliza el operador $addToSet con el modificador $each para añadir varios elementos al arreglo tags:
db.inventory.updateOne( { _id: 2 }, { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } } )
La operación solo agrega "camera" y "accessories" al arreglo tags. "electronics" ya estaba en el arreglo:
{ _id: 2, item: "cable", tags: [ "electronics", "supplies", "camera", "accessories" ] }