23 Common MongoDB Query Operators & How to Use Them

23 operadores comunes de consultas de MongoDB y cómo utilizarlos

  • Orquestación
6 min de lectura Actualizado Apr 24, 2021

Puntos clave: 23 operadores comunes de consulta MongoDB Permite consultas avanzadas de datos a través de varios tipos, incluyendo operadores de comparación, lógicos y de array, con ejemplos prácticos que ilustran su uso.

  • Operadores como $eq, $gt y $lt comparan los valores de los documentos.
  • Operadores lógicos como $and y $or combinan múltiples condiciones de consulta.

En este artículo, echaremos un vistazo a los operadores de consulta de MongoDB más utilizados. Explicaremos qué hacen y luego compartiremos ejemplos para te pueda Ve cómo funcionan.

Conoce más sobre cómo los operadores de proyección pueden optimizar el rendimiento de las consultas:

Acerca de los operadores de consulta de MongoDB

¿Cuáles son los operadores en MongoDB?

Los operadores MongoDB son símbolos o palabras clave especiales que pueden usarse para interactuar con la base de datos. Indican a un compilador o a un intérprete que realice operaciones matemáticas o lógicas.

Los operadores de consulta mejoran la funcionalidad de MongoDB permitiendo a los desarrolladores Crea consultas complejas para interactuar con conjuntos de datos que coinciden con sus aplicaciones.

Empezar con AIOps están fácil. Gestiona la creciente complejidad de TI con inteligencia artificial para la operación empresarial ›

¿Cuáles son los diferentes tipos de operadores de consulta en MongoDB?

MongoDB ofrece tipos de operadores de consulta como operadores de comparación y más.

MongoDB ofrece los siguientes tipos de operadores de consulta:

¿Cómo pueden te utiliza operadores de consulta en MongoDB?

Los operadores de MongoDB pueden usarse con cualquier comando MongoDB compatible. Si se usan correctamente, los comandos básicos de Mongo Shell pueden Reduce la carga de consultas controlando los campos incluidos y excluidos. El resultado están una mejora en el rendimiento.

Ejemplos de operadores de consulta de MongoDB

Ahora, veamos los operadores de consulta de MongoDB más usados. (No los tocaremos todos, son muchos.) Vamos a utilizar el siguiente conjunto de datos con la función find() para demostrar la funcionalidad de cada operador.

Base de datos: supermercado

Cobros: empleados, inventario, pagos, promoción

    use supermarket
db.employees.find()
db.inventory.find()
db.payments.find()
db.promo.find()

Conjunto de datos:

Operadores de comparación en MongoDB

Los operadores de comparación de MongoDB pueden usarse para comparar valores en un documento. La siguiente tabla contiene los operadores de comparación más comunes.

Operador Descripción
$eq Coincide con valores que son iguales al valor dado.
$gt Coincide si los valores son mayores que el valor dado.
$lt Coincide si los valores son menores que el valor dado.
$gte Coincide si son valores mayores o iguales al valor dado.
$lte Coincide si son valores menores o iguales al valor dado.
$in Coincide con cualquiera de los valores de un array.
$ne Coincide con valores que no son iguales al valor dado.
$nin No coincide con ninguno de los valores especificados en un array.

El operador $eq añade claridad a la consulta para que coincidan documentos donde el valor de un campo están específico — tus resultados coincidirán con un valor especificado.

En este ejemplo de operador de $eq, recuperamos el documento con el valor exacto de _id "LS0009100".

    db.inventory.find({"_id": { $eq: "LS0009100"}}).pretty()

Resultado:

Ejemplo de operador $eq MongoDB.

Operadores de $gt y $lt

Estos dos operadores relacionados devolven resultados que son "mayores que" y "menores que" valores especificados.

En este ejemplo de $gt operador, recuperamos los documentos donde la 'cantidad' están mayor que 5000.

    db.inventory.find({"quantity": { $gt: 5000}}).pretty()

Resultado:

Ejemplo de operador $gt MongoDB.

Busquemos los documentos con la 'cantidad' inferior a 5000 usando el operador $lt.

    db.inventory.find({"quantity": { $lt: 5000}}).pretty()

Resultado:

Ejemplo de operador $lt MongoDB.

Operadores de $gte y $lte

Estos operadores refinan los dos anteriores sumando el parámetro "igual a", de modo que te Obtén resultados que incluyen y son entre dos valores.

Busca documentos con 'cantidad' mayor o igual a 12.000 usando el siguiente ejemplo de operador $gte.

    db.inventory.find({"quantity": { $gte: 12000}}).pretty()

Resultado:

Ejemplo de operador $gte MongoDB.

La siguiente consulta devuelve documentos donde la cantidad está igual o menor que 1000.

    db.inventory.find({"quantity": { $lte: 1000}}).pretty()

Resultado:

Ejemplo de operador $lte MongoDB.

Operadores de $in y $nin

Los operadores $in y $nin devolven resultados donde el valor están o no en un conjunto de valores — que coincide o no con un array especificado.

La siguiente consulta devuelve documentos donde el campo precio contiene los valores indicados.

    db.inventory.find({"price": { $in: [3, 6]}}).pretty()

Resultado:

Ejemplo de operador $in MongoDB.

Si te quieres encontrar documentos cuyos campos de precio no contengan los valores dados, utiliza la siguiente consulta.

    db.inventory.find({"price": { $nin: [5.23, 3, 6, 3.59, 4.95]}}).pretty()

Resultado:

Ejemplo de operador $nin MongoDB.

El operador $ne devuelve resultados que coinciden con valores que no son iguales al valor dado, lo cual están útil para excluir lo que no están relevante para tu consulta.

Busca documentos donde el valor del campo de precio no están igual a 5,23 en la colección de inventario.

    db.inventory.find({"price": { $ne: 5.23}})

Resultado:

Ejemplo de operador $ne MongoDB.

Operadores lógicos en MongoDB

Los operadores lógicos de MongoDB pueden usarse para filtrar datos basándose en condiciones dadas. Estos operadores proporcionan una forma de combinar múltiples condiciones. Cada operador equipara la condición dada a un valor verdadero o falso.

Aquí son los ejemplos de operadores lógicos de MongoDB:

Operador Descripción
$and Une dos o más consultas con un AND lógico y devuelve los documentos que cumplen todas las condiciones.
$or Une dos o más consultas con un OR lógico y devuelve los documentos que coincidan con cualquiera de las consultas.
$nor Lo opuesto al operador OR. El operador lógico NOR unirá dos o más consultas y devolverá documentos que no coincidan con las condiciones de consulta dadas.
$not Devuelve los documentos que no coinciden con la expresión de consulta dada.

Para Obtén resultados que respondan a dos o más consultas, únelas con el operador $and.

Encuentra documentos que cumplan ambas condiciones

  • job_role están igual a "almacena Asociado"
  • emp_age están entre los 20 y los 30 años
    db.employees.find({ $and: [{"job_role": "Store Associate"}, {"emp_age": {$gte: 20, $lte: 30}}]}).pretty()

Resultado:

Ejemplo de operador $and MongoDB.

Operadores de $or y $nor

Para resultados que coinciden con una consulta, o una de muchas consultas, utiliza el operador lógico $or. Para resultados que no coinciden con ninguna de las consultas, utiliza el operador $nor.

Busca documentos que cumplan cualquiera de las siguientes condiciones.

  • job_role están igual a "Cajero Senior" o "Gerente de almacena"
  • job_role están igual a "Cajero Senior" o "Gerente de almacena"
    db.employees.find({ $or: [{"job_role": "Senior Cashier"}, {"job_role": "Store Manager"}]}).pretty()

Resultado:

Ejemplo de operador $or MongoDB.

Busca documentos que no cumplan ninguna de las siguientes condiciones.

  • job_role están igual a "Cajero Senior" o "Gerente de almacena"
    db.employees.find({ $nor: [{"job_role": "Senior Cashier"}, {"job_role": "Store Manager"}]}).pretty()

Resultado:

Ejemplo de operador $nor MongoDB.

Cuando te quieres excluir resultados específicos, te puede especificar el parámetro de exclusión con el operador $not.

Busca documentos donde no coincidan con la condición dada.

  • emp_age están no mayor ni igual a 40
    db.employees.find({ "emp_age": { $not: { $gte: 40}}})

Resultado:

Ejemplo de operador $not MongoDB.

Operadores de elementos en MongoDB

Los operadores de consulta de MongoDB de elementos se son utilizados para identificar documentos utilizando los campos del documento. La tabla que se muestra a continuación lista los operadores de elementos actuales.

Operador Descripción
$exists Empareja documentos que tengan el campo especificado.
$type Coincide con documentos según el tipo de campo especificado. Estos tipos de campo son tipos BSON especificados y pueden definirse por número de tipo o alias.

utiliza el operador de $exists filtrar documentos que tienen un campo específico.

Busca documentos donde exista el campo job_role y sea igual a "Cajero".

    db.employees.find({ "emp_age": { $exists: true, $gte: 30}}).pretty()

Resultado:

Ejemplo de operador $exists MongoDB.

Buscar documentos con un campo de dirección. (Como el conjunto de datos actual no contiene un campo de dirección, la salida será nula.)

    db.employees.find({ "address": { $exists: true}}).pretty()

Resultado:

MongoDB $exists verdadero ejemplo de operador.

Cuando los objetos de la base de datos son anotados por tipo en una notación BSON, utiliza al operador $type filtrar los resultados según un tipo específico y deseado de objeto.

La siguiente consulta devuelve documentos si el campo emp_age están de doble tipo. Si especificamos un tipo de dato diferente, no se devolverán documentos aunque el campo exista, ya que no corresponde al tipo de campo correcto.

    db.employees.find({ "emp_age": { $type: "double"}})

Resultado:

Ejemplo de operador $type MongoDB.
    db.employees.find({ "emp_age": { $type: "bool"}})

Resultado:

Ejemplo de operador de $type MongoDB 2.

Operadores de evaluación en MongoDB

Los operadores de evaluación de MongoDB pueden evaluar la estructura de datos general o el campo individual en un documento. Solo son analizamos la funcionalidad básica de estos operadores, ya que cada uno puede considerarse una funcionalidad avanzada de MongoDB. Aquí están una lista de operadores de evaluación comunes en MongoDB.

Operador Descripción
$jsonSchema Valida el documento según el esquema JSON indicado.
$mod Coincide con documentos donde el valor de un campo dado está igual al resto tras dividirse por un valor especificado.
$regex Selecciona documentos que coincidan con la expresión regular dada.
$text Realiza una búsqueda de texto en el campo indicado. La búsqueda solo puede realizarse si el campo está indexado con un índice de texto.
$where Coincide con documentos que satisfacen una expresión JavaScript.

$jsonSchema Operador

Valida un documento mediante su esquema JSON usando el operador $jsonSchema para especificar tu parámetro.

Encuentra documentos que coincidan con el siguiente esquema JSON en la colección promocional.

La agregación $let están usa para vincular las variables a un objeto de resultados para obtener una salida más sencilla. En el esquema JSON, hemos especificado el valor mínimo para el campo "periodo" como 7, lo que filtrará cualquier documento con un valor menor.

    let promoschema = {
bsonType: "object",
required: [ "name", "period", "daily_sales" ],
properties: {
"name": {
bsonType: "string",
description: "promotion name"
},
"period": {
bsonType: "double",
description: "promotion period",
minimum: 7,
maximum: 30
},
"daily_sales": {
bsonType: "array"
}
}
}
    db.promo.find({ $jsonSchema: promoschema }).pretty()

Resultado:

Ejemplo de operador $jsonschema MongoDB.

Selecciona resultados con el operador $mod, que divide el valor de un campo entre un número específico y el resto.

Busca documentos donde el resto están 1000 cuando se dividen entre 3000 en la colección de inventario.

Cabe señalar que el documento "Leche desnatada – 1lt" está incluido en la producción porque la cantidad está 1000, que no puede dividirse entre 3000, y el resto está 1000.

    db.inventory.find({"quantity": {$mod: [3000, 1000]}}).pretty()

Resultado:

Ejemplo de operador $mod MongoDB.

utiliza el operador de $regex para una expresión regular con la capacidad de emparejamiento de patrones dentro de cadenas.

Busca documentos que contengan la palabra "Empaquetado" en el campo de nombre de la colección de inventario.

    db.inventory.find({"name": {$regex: '.Packed.'}}).pretty()

Resultado:

Ejemplo de operador $regex MongoDB.

Para encontrar resultados que contengan una palabra o frase, utiliza el operador de $text para una búsqueda de texto.

Encuentra documentos usando un texto buscando "No Graso" en el campo de nombre. Si el campo no están indexado, te debe Crea un índice de texto antes de buscar.

    db.inventory.createIndex({ "name": "text"})

Resultado:

Índice de texto Crea de MongoDB.
    db.inventory.find({ $text: { $search: "Non-Fat"}}).pretty()

Resultado:

Ejemplo de operador $text MongoDB.

Para emparejar resultados con una expresión JavaScript, utiliza el operador $where.

Busca documentos de la colección "payments" donde el campo _id están un tipo de cadena y es igual al hash md5 definido como una función JavaScript.

    db.payments.find({ $where: function() { var value =  isString(this._id) && hex_md5(this._id) == '57fee1331906c3a8f0fa583d37ebbea9'; return value; }}).pretty()

Resultado:

Ejemplo de operador $where MongoDB.

Operadores de array en MongoDB

Los operadores de array de MongoDB son diseñados para consultar documentos con arrays. Aquí son los operadores de array proporcionados por MongoDB.

Operador Descripción
$all Empareja arrays que contienen todos los valores especificados en la condición de consulta.
$size Coincide con los documentos si el tamaño del array está igual al tamaño especificado en una consulta.
$elemMatch Coincide con documentos que cumplen condiciones de $elemMatch especificadas dentro de cada elemento del array.

Para un array que contiene todos los valores especificados en una condición de consulta, utiliza el operador $all.

Busca documentos donde el campo del array de categorías contenga valores "sanos" y "orgánicos".

    db.inventory.find({ "category": { $all: ["healthy", "organic"]}}).pretty()

Resultado:

Ejemplo de operador $all de MongoDB.

utiliza el operador $size filtrar los resultados para devolver solo aquellos que coincidan con un tamaño específico.

Busca documentos donde el campo de array de categorías tenga dos elementos.

    db.inventory.find({ "category": { $size: 2}}).pretty()

Resultado:

Ejemplo de operador $size MongoDB.

utiliza que el operador de $elemMatch coincida con resultados donde al menos un elemento cumple todos los criterios de consulta especificados en un array.

Busca documentos donde al menos un elemento en el array "daily_sales" están menos de 200 y mayor de 100.

    db.promo.find({ "daily_sales": { $elemMatch: {$gt: 100, $lt: 200}}}).pretty()

Resultado:

Ejemplo de operador $elemMatch MongoDB.

Operador de comentarios en MongoDB

El operador de consulta de comentarios de MongoDB asocia un comentario a cualquier expresión que tome un predicado de consulta. Añadir comentarios a las consultas permite a los administradores de bases de datos rastrear e interpretar los registros de MongoDB usando los comentarios fácilmente.

$comment Operador

Busca documentos cuyo periodo están igual a 7 en la colección promocional mientras añades un comentario a la operación de búsqueda.

    db.promo.find({ "period": { $eq: 7}, $comment: "Find Weeklong Promos"}).pretty()

Resultado:

Ejemplo de operador $comment MongoDB.

Añadir comentarios permite a los usuarios identificar fácilmente comandos en los registros de MongoDB. La operación anterior se registrará de la siguiente manera.

    db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})

Resultado:

Descubre más operadores de MongoDB

En este artículo, solo hemos arañado la superficie de los operadores de MongoDB. Podemos extiende aún más la funcionalidad general de la base de datos usando operadores de proyección yAgregadoFunciones te.

Lecturas relacionadas

Guía de MongoDB

  1. Resumen de MongoDB: Empezando con MongoDB
  2. Cómo instalar MongoDB en Ubuntu y Mac
  3. Creación de una base de datos en MongoDB
  4. Comandos básicos de MongoDB Shell
  5. MongoDB Compass: Uso de la interfaz gráfica de Mongo
  6. Explicación del Control de Acceso Basado en Roles (RBAC) de MongoDB
  7. Explicación de los operadores de proyección y proyección de MongoDB
  8. Explicación de las funciones agregadas de MongoDB
  9. Ordenación de MongoDB: método y ejemplos de sort()
  10. Uso de operadores de Push & Pull en MongoDB
  11. Cómo utiliza MongoDB $unwind
  12. 23 operadores comunes de consultas de MongoDB y cómo utilizarlos
  13. Ejemplos de consultas de geolocalización de MongoDB
  14. Introducción a las transacciones de MongoDB
  15. Índices de MongoDB: Principales tipos de índices y cómo gestionarlos
  16. Mejores comandos de MongoDB te necesitas saber
  17. Replicación de MongoDB: Una introducción completa
  18. Cómo configurar un clúster de MongoDB
  19. Fragmentos de MongoDB: Conceptos, Ejemplos y Tutoriales
  20. MongoDB Atlas: Configuración y uso de MongoDB gestionado
  21. Cómo ejecutar MongoDB como contenedor Docker
  22. Uso, gestión y requisitos de memoria de MongoDB
  23. Cómo utilizar Mongodump para copias de seguridad de MongoDB
  24. Ejemplos de Mongorestore para restaurar copias de seguridad de MongoDB
  25. Cómo utilizar PyMongo
  26. Cómo utilizar Mongoose para MongoDB y NodeJS
  27. Chuletas de MongoDB
  28. MongoDB vs Cassandra: Comparación de bases de datos NoSQL
  29. PostgreSQL vs MongoDB: Comparando bases de datos
  30. MySQL vs MongoDB: Comparando bases de datos
  31. Certificaciones MongoDB: Una introducción

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Orquestación

Suscríbete al Informe

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Gracias te

Tú te has suscrito a The Brief
El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.