MongoDB proporciona diferentes tipos de operadores de actualización de array para actualizar los valores de los campos de array en los documentos y el modificador $each es uno de ellos. Este modificador se usa para agregar múltiples valores al campo de la array. Puede usar este modificador con los operadores $addToSet
y : $push
$each
modificador con $addToSet
operador:
si usa $each
modificador con $addToSet
operador, agrega múltiples valores a un campo de array si el valor especificado no está presente en el campo de array.
Sintaxis:
{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } }
$each
modificador con $push
operador:
si usa $each modificador con $push operator, entonces agrega múltiples valores a un campo de array. El operador $push puede usar $cada modificador con otros modificadores (como, $slice
, $sort
y $position
).
Sintaxis:
{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } }
En los siguientes ejemplos, estamos trabajando con:
Base de datos: GeeksforGeeks
Colección: colaborador
Documento: dos documentos que contienen los detalles del colaborador en forma de pares de valor de campo.
Usando $each modificador con $addToSet
operador:
En este ejemplo, estamos actualizando el documento de un colaborador cuyo nombre es Sumit usando un $each
modificador con $addToSet
operador. Aquí, esta operación solo agrega «Ruby» y «C» en el campo de idioma y no agrega «Java», «C#» porque ya existen en el campo de idioma.
db.contributor.update({name: "Sumit"}, ... {$addToSet: {language: {$each: ["Ruby", "Java", "C", "C#"]}}})
Usando $each
modificador con $push
operador:
En este ejemplo, estamos actualizando el documento de un colaborador cuyo nombre es Rohit usando un $each
modificador con $push
operador. Aquí, esta operación agrega el valor especificado, es decir, [“Java”, “C”, “Python”] al final del campo de idioma. No elimina los valores duplicados.
db.contributor.update({name: "Rohit"}, ... {$push: {language: {$each: ["Java", "C", "Python"]}}})
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA