⚡ Operadores de consulta (Query Operators)

Operadores de consulta en MongoDB

⚡ Operadores de consulta (Query Operators)

Los operadores de consulta en MongoDB permiten realizar búsquedas avanzadas aplicando condiciones específicas sobre los documentos de una colección.

Estos operadores hacen que las consultas sean más potentes, permitiendo filtrar por rangos, coincidencias, listas, expresiones regulares y mucho más.


📌 1️⃣ Tipos principales de operadores

Los operadores más usados se agrupan en varias categorías:


🔍 2️⃣ Operadores de comparación

// Buscar documentos donde "precio" sea mayor que 50
db.productos.find({ precio: { $gt: 50 } });

// Menor o igual que
db.productos.find({ stock: { $lte: 10 } });

// Igual
db.productos.find({ categoria: { $eq: "periféricos" } });

// Distinto de
db.productos.find({ nombre: { $ne: "Ratón inalámbrico" } });
  

Son los operadores más comunes para aplicar filtros sencillos en consultas.


📋 3️⃣ Operadores con listas: $in y $nin

// Buscar productos cuya categoría sea una de estas
db.productos.find({
  categoria: { $in: ["tecnología", "periféricos", "hogar"] }
});

// Excluir categorías
db.productos.find({
  categoria: { $nin: ["ropa", "alimentos"] }
});
  

Muy útil cuando necesitas comparar un campo contra varias posibles coincidencias.


🧠 4️⃣ Operadores lógicos

// Productos con precio > 50 y stock > 0
db.productos.find({
  $and: [
    { precio: { $gt: 50 } },
    { stock: { $gt: 0 } }
  ]
});

// Productos con categoría "periféricos" o stock < 5
db.productos.find({
  $or: [
    { categoria: "periféricos" },
    { stock: { $lt: 5 } }
  ]
});
  

Sirven para combinar múltiples condiciones dentro de una misma consulta.


🔎 5️⃣ Buscar por existencia de campos

// Documentos que tengan el campo "descuento"
db.productos.find({ descuento: { $exists: true } });

// Documentos que NO tengan "categoria"
db.productos.find({ categoria: { $exists: false } });
  

Ideal para validar datos o encontrar documentos incompletos.


🎯 6️⃣ Búsqueda por patrones (RegExp)

// Buscar productos cuyo nombre empiece por "Te"
db.productos.find({
  nombre: { $regex: /^Te/i }
});

// Contengan "pro"
db.productos.find({
  nombre: { $regex: /pro/i }
});
  

Perfecto para búsquedas como autocompletado, filtros o coincidencias parciales.


📘 7️⃣ Combinando varios operadores

// Productos entre 20 y 100€ y con stock disponible
db.productos.find({
  precio: { $gte: 20, $lte: 100 },
  stock: { $gt: 0 }
});
  

MongoDB permite combinar operadores para crear consultas muy potentes.


🧪 8️⃣ Probar operadores en MongoDB Compass

  1. Abre la colección donde quieras consultar.
  2. Escribe la consulta en formato JSON en la sección Filter.
  3. Pulsa Apply para ver los resultados.
  4. Modifica operadores para experimentar en tiempo real.

Compass es ideal para aprender los operadores sin escribir código en consola.


🧭 9️⃣ Resumen rápido

  • $gt, $lt, $eq: comparación básica.
  • $in, $nin: buscar dentro/excluir listas.
  • $and, $or: combinar condiciones.
  • $exists: verificar existencia de campos.
  • $regex: buscar cadenas por patrones.

Publicar un comentario

0 Comentarios