馃攳 Consultar documentos (Find)

Consultar documentos en MongoDB

馃攳 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 }
)
  • 1 significa “mostrar”.
  • 0 significa “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

  1. find() devuelve m煤ltiples documentos.
  2. findOne() devuelve uno solo.
  3. Los filtros se escriben en formato JSON.
  4. Con sort y limit puedes ordenar y limitar resultados.
  5. Con proyecci贸n eliges qu茅 campos mostrar.

Publicar un comentario

0 Comentarios