🔍 Consultar documentos (Find)
Consultar datos en MongoDB se realiza mediante los métodos find() y findOne().
A diferencia de SQL, donde usamos SELECT, aquí utilizamos filtros en formato
JSON para recuperar documentos dentro de una colección.
Con estas consultas podrás obtener información de tus usuarios, productos, pedidos y cualquier colección que forme parte de tu aplicación.
📘 1️⃣ Métodos principales para consultar datos
- find() → Devuelve varios documentos.
- findOne() → Devuelve un único documento (el primero que coincida).
🔎 2️⃣ Consultas básicas con find()
Consultar todos los documentos de una colección:
db.usuarios.find()
MongoDB mostrará todos los documentos en formato JSON.
➡️ Consultar con formato más legible:
db.usuarios.find().pretty()
🆔 3️⃣ Buscar por un campo específico
Ejemplo: buscar un usuario por su nombre:
db.usuarios.find({ nombre: "Ana Torres" })
Buscar productos en una categoría específica:
db.productos.find({ categoria: "periféricos" })
📄 4️⃣ Buscar un único documento (findOne)
db.usuarios.findOne({ correo: "ana@correo.com" })
Este método devuelve solo el primer documento que cumpla la condición.
🎯 5️⃣ Filtros más específicos
➡️ Documentos donde el precio sea mayor a 50:
db.productos.find({ precio: { $gt: 50 } })
➡️ Documentos donde el stock sea menor o igual a 20:
db.productos.find({ stock: { $lte: 20 } })
➡️ Productos activos:
db.productos.find({ activo: true })
🛒 6️⃣ Ejemplo real: Consultar productos de una tienda online
Todos los productos:
db.productos.find()
Productos de la categoría “audio”:
db.productos.find({ categoria: "audio" })
Productos entre 20 y 60 euros:
db.productos.find({
precio: { $gte: 20, $lte: 60 }
})
📦 7️⃣ Proyecciones: devolver solo ciertos campos
Puedes limitar qué campos quieres que regresen los documentos.
➡️ Mostrar solo nombres y correos de usuarios:
db.usuarios.find(
{},
{ nombre: 1, correo: 1, _id: 0 }
)
1significa “mostrar”.0significa “ocultar”.
📊 8️⃣ Ordenar resultados (sort)
Orden ascendente (1) o descendente (-1):
db.productos.find().sort({ precio: 1 })
Ejemplo: ordenar usuarios por edad descendente:
db.usuarios.find().sort({ edad: -1 })
📌 9️⃣ Limitar resultados (limit)
Obtener solo los primeros 5 documentos:
db.productos.find().limit(5)
🔧 🔟 Combinando filtros, orden y proyección
Ejemplo completo: productos activos, categoría periféricos, precio mayor a 30, solo nombre y precio, ordenados por precio ascendente:
db.productos.find(
{
categoria: "periféricos",
activo: true,
precio: { $gt: 30 }
},
{
nombre: 1,
precio: 1,
_id: 0
}
).sort({ precio: 1 })
🧠 Resumen rápido
- find() devuelve múltiples documentos.
- findOne() devuelve uno solo.
- Los filtros se escriben en formato JSON.
- Con sort y limit puedes ordenar y limitar resultados.
- Con proyección eliges qué campos mostrar.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias