🔍 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