Fundamentos de MongoDB

1

Uso de MongoDB: Consultas y Almacenamiento en NoSQL

2

Bases de Datos NoSQL: MongoDB y Tipos de Escalamiento

3

Documentos y colecciones en bases de datos documentales

4

Creación y gestión de bases de datos NoSQL con MongoDB y Atlas

5

Uso de Mongo Compass para Conectar y Consultar Bases de Datos

6

Consultas de MongoDB en Visual Studio Code con MongoDB for VS Code

7

Instalación de Docker en Windows, macOS y Ubuntu

8

Correr MongoDB en Docker: Configuración y Ejecución Local

9

Conexión a MongoDB usando Mongo SH y Docker

10

Diferencias entre JSON y BSON en MongoDB

CRUD

11

Operaciones CRUD e inserción de documentos en MongoDB

12

Operaciones CRUD en MongoDB: Insertar Documentos en Mongo Atlas

13

Actualización de Documentos en MongoDB con Operadores Básicos

14

Actualización en Masa de Documentos en MongoDB con UpdateMany

15

Actualización y manejo de arrays en MongoDB

16

Gestión de datos de sensores IoT en MongoDB: Insert y Update eficientes

17

Eliminar documentos en MongoDB: métodos y prácticas

Operadores

18

Consultas con Operadores de Comparación en MongoDB

19

Operadores de Comparación en MongoDB: Mayor, Menor e Igualdad

20

Operadores avanzados en MongoDB: consultas y actualizaciones eficientes

21

Búsquedas Avanzadas con Expresiones Regulares en MongoDB

22

Selección de Campos en Consultas MongoDB con Projections

23

Consultas Avanzadas en Arrays con MongoDB

24

Operadores Lógicos en MongoDB: Uso de AND, OR y NOR

25

Consultas avanzadas con el operador expresivo en MongoDB

26

Consultas Avanzadas en Arrays y Subdocumentos en MongoDB

Herramientas comunes al trabajar con MongoDB

27

Análisis de Datos con MongoDB Aggregation Framework

28

Ordenar y Limitar Consultas en MongoDB para Paginación

29

Características y usos avanzados de Mongo Atlas

30

MongoDB: Dominio de CRUD y Consultas Avanzadas

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Consultas con Operadores de Comparación en MongoDB

18/30
Recursos

¿Cómo utilizar los operadores de comparación en MongoDB?

MongoDB es una poderosa herramienta para manejar bases de datos no relacionales. Entre sus características destacadas se encuentran los operadores de comparación que nos permiten realizar consultas más complejas y específicas. En este apartado, nos enfocaremos en los operadores equal y not equal, los cuales nos permitirán buscar datos que sean precisamente iguales o distintos a un valor especificado dentro de nuestros documentos.

¿Qué es el operador equal y cómo se utiliza?

El operador equal en MongoDB se emplea para buscar documentos en una colección que coincidan con un valor específico en un campo. Aunque este operador trae implícito el equal en las consultas de MongoDB, también se puede usar de una manera explícita para mayor claridad.

Veamos un ejemplo básico:

// Consulta implícita
db.inventory.find({ quantity: 20 })

// Consulta explícita
db.inventory.find({ quantity: { $eq: 20 } })

En ambos casos, la consulta devolverá todos los productos que tengan en el campo quantity un valor igual a 20. Usar el operador explícitamente, como $eq, resulta útil para aclarar el tipo de consulta que se realiza, aunque no sea estrictamente necesario.

¿Cómo buscar en subdocumentos utilizando equal?

MongoDB nos permite realizar consultas en subdocumentos dentro de un documento principal. Para acceder a estos, los nombres de los campos deben especificarse de manera completa usando comillas dobles sin errores tipográficos.

Por ejemplo, dado un subdocumento con un campo name dentro de item, la consulta sería:

// Búsqueda en un subdocumento
db.inventory.find({ "item.name": "AB" })

Al ejecutar esta búsqueda, la consulta devolverá los documentos donde el subdocumento item tenga un campo name igual a "AB".

¿Para qué sirve y cómo se aplica el operador not equal?

A diferencia del operador equal, el operador not equal ($ne) busca la negación en el contexto del valor especificado. Esto significa que devolverá todos los documentos que no coincidan con el valor dado en el campo.

Aquí tienes un ejemplo:

// Consulta para obtener documentos con quantity distinto a 20
db.inventory.find({ quantity: { $ne: 20 } })

Al ejecutar esto, la consulta devolverá todos los documentos cuya cantidad no sea 20, permitiéndonos centrarnos en otros valores.

¿Cómo aplicar los operadores de comparación dentro de una actualización?

Los operadores de comparación pueden integrarse a las instrucciones de actualización como update en MongoDB. Esto resulta muy útil cuando deseamos realizar cambios en los documentos que cumplan con ciertas condiciones.

Veamos un caso de uso práctico:

// Aumentar el campo quantity por 10 en documentos donde la quantity no es 20
db.inventory.updateMany(
  { quantity: { $ne: 20 } },
  { $inc: { quantity: 10 } }
)

Esta instrucción incrementará en 10 la cantidad de todos los productos cuyo quantity no sea 20. MongoDB facilita realizar este tipo de operaciones complejas y potentes directamente sobre sus documentos.

¡Explora más operadores!

Los operadores de comparación son solo el comienzo de lo que MongoDB ofrece. Anímate a investigar otros operadores que te permitirán explotar al máximo esta base de datos en tus proyectos. La continua práctica y aprendizaje te ayudarán a desenvolverte con mayor habilidad y precisión en este entorno.

Estos conceptos y técnicas te proporcionan las herramientas necesarias para gestionar tus datos de manera efectiva y competente. ¡Sigue aprendiendo y perfeccionando tus habilidades!

Aportes 11

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

$eq (equal)
$ne (not equal)

$eq y $eq

use("platzi_store")

// usando equal implicitamente
db.inventory.find({qty: 20})

// usando equal explicitamente
db.inventory.find({qty: {$eq: 20}})

// usando find en objetos anindados
//NOTA: siempre que esté la notación . (punto), la clave debe ir en "" (comnnillas)
db.inventory.find({"item.code": "123"})

// usando no equal, este se usa de forma explícita
db.inventory.find({qty: {$ne: 20}})

Y podemos utilizarlos para actualizar de forma selectiva ciertos documentos

use("platzi_store")

db.inventory.updateMany(
    {qty: {$ne: 20}},
    {
        $inc: {
            qty: 10
        }
    }
)

En VSCode puedes correr el archivo .mongodb utilizando es atajo: “Ctrl + Alt + r”

1. **Operadores de Comparación**: * **$eq**: Coincide con valores que son iguales a un valor especificado. * **$gt**: Coincide con valores que son mayores que un valor especificado. * **$gte**: Coincide con valores que son mayores o iguales a un valor especificado. * **$in**: Coincide con cualquiera de los valores especificados en un arreglo. * **$lt**: Coincide con valores que son menores que un valor especificado. * **$lte**: Coincide con valores que son menores o iguales a un valor especificado. * **$ne**: Coincide con todos los valores que no son iguales a un valor especificado. * **$nin**: Coincide con ninguno de los valores especificados en un arreglo. 2. **Operadores Lógicos**: * **$and**: Combina cláusulas de consulta con un AND lógico y devuelve documentos que cumplen ambas condiciones. * **$not**: Invierte el efecto de una expresión de consulta y devuelve documentos que no cumplen la expresión de consulta. * **$nor**: Combina cláusulas de consulta con un NOR lógico y devuelve documentos que no cumplen ambas condiciones. * **$or**: Combina cláusulas de consulta con un OR lógico y devuelve documentos que cumplen cualquiera de las condiciones. 3. **Operadores de Elementos**: * **$exists**: Coincide con documentos que tienen el campo especificado. * **$type**: Selecciona documentos si un campo es del tipo especificado. 4. **Operadores de Evaluación**: * **$expr**: Permite el uso de expresiones de agregación dentro del lenguaje de consulta. * **$jsonSchema**: Valida documentos frente a un esquema JSON dado. * **$mod**: Realiza una operación de módulo en el valor de un campo y selecciona documentos con un resultado especificado. * **$regex**: Selecciona documentos donde los valores coinciden con una expresión regular especificada. * **$text**: Realiza una búsqueda de texto. * **$where**: Coincide con documentos que satisfacen una expresión JavaScript. 5. **Operadores Geoespaciales**: * **$geoIntersects**: Selecciona geometrías que intersectan con una geometría GeoJSON. * **$geoWithin**: Selecciona geometrías dentro de una geometría GeoJSON delimitante. * **$near**: Devuelve objetos geoespaciales en proximidad a un punto (requiere un índice geoespacial). * **$nearSphere**: Devuelve objetos geoespaciales en proximidad a un punto en una esfera (requiere un índice geoespacial). 6. **Operadores de Arreglos**: * **$all**: Coincide con arreglos que contienen todos los elementos especificados en la consulta. * **$elemMatch**: Selecciona documentos si un elemento en el campo de arreglo cumple con todas las condiciones especificadas.

link al dataset

Acá podemos ver los operadores en la documentación oficial de MondoDB https://www.mongodb.com/docs/manual/reference/operator/query-comparison/#comparison-query-operators

Aquí esta si alguien lo necesita: use("platzi\_store") db.inventory.drop() db.inventory.insertMany(\[  { \_id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: \["A", "B", "C"] },  { \_id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: \["B"] },  { \_id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: \["A", "B"] },  { \_id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: \["B", "A"] },  { \_id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: \[\["A", "B"], "C"] },]) db.inventory.find()
Muy bueno
Son dos operadores de consulta y comparación, $eq (equal - igual), $ne (not equal, distinto de). Se pueden usar tanto en consultas sencillas como en updates u otros métodos que requieran de una consulta para realizar modificaciones. Uso en consultas: // Usando $eq o igualdad. db.inventory.find({ qty: 20 //El operador $eq es un operador que viene de forma implícita.}) //Esto sería lo mismo que lo anteriordb.inventory.find({ qty: { $eq: 20 //Esto sería de forma explícita }}) //Búsqueda por subdocumento db.inventory.find({ "item.name": "ab" //Tener en cuenta que cuando buscamos por subdocumento tenemos que poner el elemento entre comillas dobles}) db.inventory.find({ "item.code": "123"}) //Usando Sne o no igual, este operador siempre se usa de forma explícita. db.inventory.find({ qty: { $ne: 20 }}) //Estos operadores se pueden usar también para actulizaciones, eliminaciones, etc//Ver archivo update.mongodb Uso en actualizaciones: ```sqluse("platzi\_store") db.inventory.updateMany( {qty: {$ne: 20}}, //Realiza la consulta { $inc: { //Incrementa el elemento seleccionado con el valor indicado. qty: 10 } }) ```
//using $ne // esto se utiliza cuando no queremos ningun resultado que incluya el valor que damos.    // es como colocar... if A != 123 > entonces mostrar `db.inventory.find({"item.code":{$ne:"123"}})`

El tema de la comilla doble " es importante tenerlo en consideración para evitar el error