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 $push
operador es uno de ellos. Este operador se usa para agregar un valor específico a una array.
Sintaxis:
{ $push: { <field1>: <value1>, ... } }
Aquí, <field> puede especificar con notación de puntos en documentos incrustados/anidados o en una array.
- Si el campo especificado en el
$push
operador no está presente en el documento, este operador agregará el campo de array con el valor como sus elementos. - El
$push
operador inserta elementos al final de la array. - Si el campo especificado en el
$push
operador no es una array, esta operación fallará. - Si el valor del
$push
operador es una array, este operador agregará toda la array como un solo elemento. Y si desea agregar cada elemento del valor por separado, puede usar el modificador $cada uno con el$push
operador. - Puede usar este operador con métodos como update(), findAndModify(), etc., según sus requisitos.
También podemos usar los siguientes modificadores con el operador $push:
Sintaxis:
{ $push: { <field1>: { <modifier1>: <value1>, ... }, ... } }
El procesamiento de la operación push con modificadores funciona en el siguiente orden:
- Primero actualice la array para agregar elementos en la posición correcta.
- En segundo lugar, aplique ordenar si se especifica.
- En tercer lugar, corte la array si se especifica.
- Cuarto almacene la array.
Nota: Aquí no importa el orden en que aparecen los modificadores en el operador $push.
modificador | Descripción |
---|---|
$cada uno | Se utiliza para agregar múltiples valores al campo de la array. |
$rebanada | Se utiliza para limitar el número de elementos de la array y requiere el uso del modificador $each. |
$clasificar | Se utiliza para ordenar elementos del arreglo y requiere el uso del modificador $each. |
$posicion | Se utiliza para especificar la ubicación en la array en la que insertar los elementos nuevos y requiere el uso del modificador $each. Si el operador $push no usa el modificador $position, este operador agregará los elementos al final de la array. |
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.
Agregar un solo valor a una array:
En este ejemplo, agregamos un solo valor, es decir, «C++» a un campo de array, es decir, un campo de idioma en el documento que cumple la condición (nombre: «Rohit»).
db.contributor.update({name: "Rohit"}, {$push: {language: "C++"}})
Agregar múltiples valores a una array:
En este ejemplo, agregamos varios valores, es decir, [“C”, “Ruby”, “Ir”] a un campo de array, es decir, un campo de idioma en el documento que cumple la condición (nombre: “Sumit”).
db.contributor.update({name: "Sumit"}, {$push: {language: {$each: ["C", "Ruby", "Go"]}}})
Agregar múltiples valores a una array en el documento anidado/incrustado:
En este ejemplo, agregamos varios valores, es decir, [89, 76.4] a un campo de array, es decir, el campo personal.semesterMarks de un documento anidado/incrustado.
db.contributor.update({name: "Sumit"}, {$push: {"personal.semesterMarks": {$each: [89, 76.4]}}})
Uso de modificadores con el operador $push:
En este ejemplo, estamos usando múltiples modificadores como $each, $sort y $slice con el operador $push.
db.contributor.update({name: "Rohit"}, {$push: { language: { $each: ["C", "Go"], $sort: 1, $slice: 4}}})
Aquí,
- El modificador $each se usa para agregar varios documentos a la array de idioma.
- El modificador $sort se usa para ordenar todos los elementos de la array de idioma modificada en forma ascendente.
- El modificador $slice se usa para mantener solo los primeros cuatro elementos ordenados de la array de idioma.
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