MongoDB tirón

MongoDB tirón
Las matrices son algunos de los tipos de datos más comunes y útiles en el desarrollo. Seguramente se encontrará con los valores de la matriz cuando trabaje con documentos MongoDB.

Por lo tanto, es importante comprender varias operaciones de matriz en MongoDB y cómo podemos usarlas en sus bases de datos.

Para esta publicación, nos centraremos en el operador MongoDB $ Pull. Este operador le permite eliminar un valor de una matriz existente basada en la condición especificada.

Sintaxis del operador

El siguiente formulario muestra la sintaxis del operador y el soporte de parámetros:

$ Pull: :,::, ...

El siguiente comportamiento se aplica al operador $ Pull en documentos MongoDB:

  1. Definición de la condición de los elementos de matriz que incorporaron documentos, el operador aplicará la condición especificada en cada elemento de matriz como una recopilación de documentos.
  2. Si el valor especificado es una matriz, el operador solo eliminará los elementos en que coincidan con el valor especificado, orden inclusive.
  3. Si el valor que se eliminará es un documento, el operador eliminará los elementos con campos y valores exactos, orden exclusivo.

Explore el operador $ Pull en un entorno práctico.

Ejemplo práctico

Comencemos creando una colección de pruebas y agregamos algunos documentos de muestra. Puede usar la consulta como se muestra a continuación:

db.createCollection ("usuarios")
OK: 1

Insertar registros de muestra.

db.usuarios.insertmany ([

_id: 1,
Nombre: "William",
Departamento: "Desarrollo del juego",
Startyear: 2021,
Supported_langs: ["C ++", "Java", "C#", "Python"],
Tecnologías: [

"Docker": verdadero,
"Nivel": "Intermedio"
,

"Ansible": verdadero,
"Nivel": "principiante"

],
País: Estados Unidos",
Salario: 160000

])

Supongamos que deseamos eliminar "Python" de la matriz Supported_Langs, podemos ejecutar una consulta como se muestra:

db.usuarios.UpdateMany (, $ Pull: Supported_langs: $ in: ["Python"])

Esto debería eliminar la entrada "Python" de la matriz de soporte. La salida resultante es como se muestra:


"_id": 1.0,
"Nombre": "William",
"Departamento": "Desarrollo del juego",
"Startyear": 2021.0,
"Supported_langs": [
"C ++",
"Java",
"C#"
],
"Tecnologías": [

"Docker": verdadero,
"Nivel": "Intermedio"
,

"Ansible": verdadero,
"Nivel": "principiante"

],
"País: Estados Unidos",
"Salario": 160000.0

Podemos ver la entrada "Python" se ha eliminado del documento.

Para eliminar un elemento de una variedad de documentos, podemos ejecutar una consulta como se muestra:

db.usuarios.UpdateMany (, $ Pull: Technologies: "Ansible": true, "nivel": "principiante")

El comando anterior eliminará el elemento de la matriz de tecnologías que contiene dos documentos.

El documento resultante es como se muestra:

db.usuarios.encontrar()

Producción:


"_id": 1.0,
"Nombre": "William",
"Departamento": "Desarrollo del juego",
"Startyear": 2021.0,
"Supported_langs": [
"C ++",
"Java",
"C#"
],
"Tecnologías": [

"Docker": verdadero,
"Nivel": "Intermedio"

],
"País: Estados Unidos",
"Salario": 160000.0

De la salida anterior, podemos verificar el elemento con el parámetro especificado se ha eliminado de la matriz de tecnologías.

Conclusión

Este artículo cubre los fundamentos de trabajar con el operador $ Pull en MongoDB, lo que le permite eliminar elementos de una matriz en un documento determinado.