Actualizar Push Array en MongoDB
- Operadores en MongoDB
-
Operador
$push
en MongoDB - Empuje elementos a una matriz en MongoDB
- Insertar elementos al comienzo de la matriz en MongoDB
- Empujar elementos al final de la matriz en MongoDB
- Empuje varios elementos 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:
- MongoDB debe estar correctamente instalado y configurado para agregar elementos a una matriz en MongoDB.
- Una comprensión básica de cómo funcionan las matrices.
Veamos primero la tabla de contenido de este artículo.
- Operadores en MongoDB
- Operador
$push
en MongoDB - Empujar elementos a una matriz
- Empujar elementos al comienzo de la matriz
- 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.
- 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.
- Operadores de actualización: los operadores de actualización le permiten cambiar o agregar datos a su base de datos.
- Etapas de canalización de agregación: etapas de agregación disponibles para canalización de agregación.
- 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.
- 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.
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.
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.
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.
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.
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.
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.