Definición
$eachEl
$eachEl modificador está disponible para su uso con el$addToSetOperador y el$pushoperador.Úselo con el operador para agregar múltiples valores a una
$addToSetmatriz<field>si los valores no existen<field>en.{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } } Úselo con el operador para agregar múltiples valores a
$pushuna<field>matriz.{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } } El operador
$pushpuede usar el modificador$eachcon otros modificadores. Para ver una lista de 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
Utilice $each con el $push operador
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 ] } } } )
Utilice $each con el $addToSet operador
Una colección inventory tiene el siguiente documento:
db.inventory.insertOne ( { _id: 2, item: "cable", tags: [ "electronics", "supplies" ] } )
Luego, la siguiente operación utiliza el operador$addToSetcon el modificador$eachpara agregar múltiples elementos a la matriz 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" ] }