馃攳 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