🔎 Filtrado, proyecciones y ordenamiento
En MongoDB, las operaciones de filtrado, proyección y ordenamiento forman parte de las consultas más utilizadas del día a día. Son equivalentes a:
- Filtrado →
WHEREen SQL - Proyección →
SELECT campo1, campo2 - Ordenamiento →
ORDER BY
Se realizan con el método find(), que permite seleccionar datos según condiciones,
definir qué campos mostrar y ordenar los resultados de forma muy eficiente.
🔍 1️⃣ Filtrado de documentos
El filtrado consiste en obtener documentos que cumplan una condición. Ejemplo básico: productos con precio mayor de 50.
db.productos.find({ precio: { $gt: 50 } })
Ejemplos comunes:
-
Igualdad
db.usuarios.find({ pais: "España" }) -
Mayor o menor
db.productos.find({ stock: { $lte: 10 } }) -
Filtrar por dos condiciones
db.productos.find({ categoria: "gaming", precio: { $lt: 200 } }) -
Con operadores lógicos
db.productos.find({ $or: [ { categoria: "gaming" }, { categoria: "oficina" } ] })
🧩 2️⃣ Proyecciones — seleccionar campos específicos
La proyección sirve para mostrar solo ciertos campos de un documento, lo cual mejora el rendimiento y reduce el peso de la consulta.
Ejemplo: mostrar solo nombre y precio:
db.productos.find(
{ categoria: "gaming" },
{ nombre: 1, precio: 1, _id: 0 }
)
1→ mostrar campo0→ ocultarlo_id: 0→ es opcional, pero se suele ocultar
Ejemplo con campo calculado:
db.productos.find(
{},
{ nombre: 1, precioIVA: { $multiply: ["$precio", 1.21] } }
)
📌 3️⃣ Ordenamiento de resultados
Para ordenar documentos se usa el método sort().
1→ Ascendente-1→ Descendente
Ejemplo: ordenar productos del más caro al más barato:
db.productos.find().sort({ precio: -1 })
Ejemplo: ordenar usuarios por fecha de registro:
db.usuarios.find().sort({ fechaRegistro: 1 })
Ejemplo combinado: filtrar, proyectar y ordenar:
db.productos.find(
{ categoria: "gaming" },
{ nombre: 1, precio: 1, _id: 0 }
).sort({ precio: -1 })
🧠 4️⃣ Resumen rápido
- Filtrado: obtener documentos según una condición.
- Proyección: elegir qué campos se muestran.
- Ordenamiento: ordenar los resultados ascendente o descendente.
- Estas operaciones son la base del trabajo diario con MongoDB.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias