Actualizar Push Array en MongoDB

Tahseen Tauseef 15 febrero 2024
  1. Operadores en MongoDB
  2. Operador $push en MongoDB
  3. Empuje elementos a una matriz en MongoDB
  4. Insertar elementos al comienzo de la matriz en MongoDB
  5. Empujar elementos al final de la matriz en MongoDB
  6. Empuje varios elementos en MongoDB
Actualizar Push Array en MongoDB

Esta publicación instructiva le mostrará cómo agregar elementos a una matriz en MongoDB utilizando varias técnicas. Empujar o agregar elementos a una matriz es extremadamente útil para agregar rápidamente una lista agregando o moviendo objetos en un documento MongoDB existente.

La lección enseñará cómo usar números enteros negativos y positivos para operaciones de “empuje”, con un número entero negativo que brinda posibilidades adicionales de “empuje” para colocar datos en la matriz.

Requisito previo:

  1. MongoDB debe estar correctamente instalado y configurado para agregar elementos a una matriz en MongoDB.
  2. Una comprensión básica de cómo funcionan las matrices.

Veamos primero la tabla de contenido de este artículo.

  1. Operadores en MongoDB
  2. Operador $push en MongoDB
  3. Empujar elementos a una matriz
  4. Empujar elementos al comienzo de la matriz
  5. Elementos de empuje al final de la matriz

Operadores en MongoDB

Los operadores son símbolos especiales o palabras clave que le dicen a un compilador o intérprete cómo realizar operaciones matemáticas o lógicas. Los operadores de consulta amplían la capacidad de MongoDB al permitir que los desarrolladores escriban consultas complicadas para interactuar con conjuntos de datos relevantes para sus aplicaciones.

Los siguientes son los diversos tipos de operadores en MongoDB.

  1. Operadores de consulta y proyección: los operadores de consulta ayudan a descubrir datos en una base de datos, mientras que los operadores de proyección alteran la forma en que se muestran los datos.
  2. Operadores de actualización: los operadores de actualización le permiten cambiar o agregar datos a su base de datos.
  3. Etapas de canalización de agregación: etapas de agregación disponibles para canalización de agregación.
  4. Operadores de canalización de agregación: las operaciones de canalización de agregación tienen una colección de operadores disponibles para definir y manipular documentos en etapas de canalización.
  5. Modificadores de consultas: los modificadores de consultas determinan cómo se ejecutarán las consultas.

Operador $push en MongoDB

En MongoDB, el operador $push se usa para adjuntar un valor a una matriz. El operador $push es un operador de actualización.

Si el campo proporcionado no está en el documento que se está modificando, el operador $push lo crea como un nuevo campo con el valor especificado como su elemento. La operación falló si el campo de actualización no era del tipo matriz.

Al actualizar, el operador $push agrega la matriz completa como un solo elemento si el valor es una matriz. Utilice el operador $push con el modificador $each para agregar cada elemento de valor individualmente.

Sintaxis:

db.collection.update( <query>,{ $push: { <field>: <value> } })

Ejemplo del operador MongoDB $push:

Si desea agregar 95 al campo de matriz completado cuando la condición sujetos es matemáticas, podemos usar el comando MongoDB a continuación.

db.student.update( { "subjects" : "maths" },{ $push: { "achieve": 95 } });

Debido a que el criterio descrito en el ejemplo anterior coincide con esta acción, el valor 95 se agregará a la matriz realizada.

Para ver el documento recién actualizado:

db.student.find().pretty();

El resultado de la consulta anterior se puede ver en esta captura de pantalla.

usar operador de empuje

Ejemplo de MongoDB $push cuando el campo no es una matriz:

Si desea agregar 2 a la columna sem, que no es un campo de tipo matriz, podemos usar el comando MongoDB a continuación.

db.student.update( { "subjects" : "maths" },{ $push: { "sem": 2 } });

Debido a que el campo sem en el ejemplo anterior no es del tipo matriz, la operación fallará y producirá el siguiente resultado.

Cannot apply $push/$push All modifier to non-array

Empuje elementos a una matriz en MongoDB

Esta sección muestra cómo usar un operador $push, como una operación de actualización, para agregar un elemento a una matriz.

Primero, cree un conjunto de datos de muestra con frutas, de la siguiente manera.

use fruitdb
switched to db fruitdb
db.fruit.insert({
      "_id": "100",
      "fruitArray": ['mango', 'banana', 'orange']
   });
WriteResult({ "nInserted" : 1 })

Ahora verifique el proceso de inserción con el siguiente comando.

db.fruit.find({_id: "100"});

El resultado debe parecerse al siguiente.

Empuje elementos a una matriz en MongoDB

Ahora agregue otra fruta en el arreglo de frutas. En este ejemplo, ejecute el siguiente comando para agregar piña.

db.fruit.update(
      { "_id": "100" },
      {
          $push: {
              fruitArray: "pineapple"
          }
      }
  );

Los resultados deben parecerse a los siguientes.

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Ejecute el siguiente comando para verificar que la piña se agregó con éxito en el array de frutas como elemento.

db.fruit.find({_id: "100"}).pretty();

La salida debe ser la siguiente.

Empuje elementos a una matriz en MongoDB 2

Los resultados demuestran que el operador $push insertó la palabra pineapple al final del fruitArray.

Insertar elementos al comienzo de la matriz en MongoDB

La sección anterior describió cómo adjuntar un nuevo elemento al inicio de una matriz. Esta sección demostrará cómo insertar el elemento uvas al comienzo de la matriz.

El siguiente comando se utiliza para llevar a cabo esta acción.

db.fruit.update(
      { "_id": "100" },
      {
          $push: {
              fruitArray: {
                  $each: ['grapes'],
                  $position: 0
              }
          }
      }
  );

El siguiente comando puede confirmar que el procedimiento de actualización fue exitoso.

db.fruit.find({_id: "100"}).pretty();

La salida debe parecerse a la siguiente.

Empujar elementos al inicio de la matriz en MongoDB

En la operación anterior se utilizó el operador $posición. Como su nombre lo indica, este comando coloca el elemento dentro de la matriz según lo definido por el usuario.

Además, tenga en cuenta que el entero positivo utilizado para el valor $posición se empujará desde la izquierda o el principio de la matriz.

Empujar elementos al final de la matriz en MongoDB

La sección anterior demuestra cómo insertar un elemento al principio de una matriz utilizando un entero positivo como valor del operador $posición. Esta parte le enseñará cómo empujar los elementos usando un número entero negativo como valor, como se demuestra aquí.

db. fruit.update(
      { "_id": "100" },
      {
          $push: {
              fruitArray: {
              $each: ['apple'],
              $position: -1
          }
      }
  });

La salida debe parecerse a la siguiente.

Empujar elementos al final de la matriz en MongoDB

Usando un -1 para el valor, manzana se colocó en la penúltima posición de la lista de elementos, con el último elemento en la posición 0.

Empuje varios elementos en MongoDB

Esta sección muestra cómo insertar o insertar varios elementos en una matriz.

Primero, dentro del documento fruta, agregue otra matriz.

db. fruit.insert({
      "_id": "101",
      "fruitArray": ["strawberry","guava","lemon"]
  });

Se debe generar un nuevo documento con la siguiente información.

Empuje varios elementos en MongoDB

Ahora, use el siguiente comando para agregar numerosos elementos al nuevo documento.

db.fruit.update(
      { "_id": "101" },
      {
          $push: {
              fruitArray: {
                  $each: ['pear', 'cherry', 'lime'],
                  $position: -2
              }
          }
      }
  );

Como los elementos ['pear', 'cherry' y 'lime'] se insertan en el código anterior, esta matriz puede verse como un elemento. Esto empuja o mueve pear a la posición indicada de -2, seguido de cherry y lime, en ese orden.

Cabe señalar que los elementos se agregarán a la matriz en el orden indicado.

Este artículo lo guió a través de los diversos métodos para agregar elementos a una matriz en MongoDB. Primero, la lección demostró cómo utilizar un operador $push para agregar elementos a una matriz, como una operación de actualización.

Luego se demostró cómo generar un conjunto de datos de muestra, insertar elementos en la matriz y finalmente probar el proceso de inserción. El artículo también discutió cómo empujar elementos al principio, en el medio y al final de una matriz y cómo empujar múltiples elementos.

Recuerde que un entero negativo como valor empujará los elementos hacia el final de la matriz, mientras que un entero positivo empujará los elementos desde la izquierda o el principio de la matriz.