08-10-2026

Consultas más comunes de mongodb

MQL • CRUD • Aggregation
(Basado en la documentación actual de MongoDB)

CREATE – Insertar documentos

  • Insertar un documento
    "db.users.insertOne({ name: "Parvez", age: 28, role: "user" })"
    → { acknowledged: true, insertedId: ObjectId("...") }
  • Insertar varios documentos
    "db.users.insertMany([ { name: "Ali", age: 25 }, { name: "Sara", age: 30 }, { name: "John", age: 22 } ])"
    → { acknowledged: true, insertedIds: [ObjectId(...), ...] }

READ & FILTER – Buscar documentos

  • Buscar todos los documentos → "db.users.find({})"
  • Buscar con condición → "db.users.find({ age: { $gt: 25 } })"
  • Buscar dentro de un rango → "db.users.find({ age: { $gte: 18, $lte: 30 } })"
  • Buscar con $in (varios valores) → "db.users.find({ role: { $in: ["admin", "editor"] } })"
  • Buscar con $or → "db.users.find({ $or: [ { age: { $lt: 18 } }, { role: "admin" } ] })"
  • Buscar con expresión regular (regex) → "db.users.find({ email: { $regex: "@gmail\.com$" } })"
  • Buscar campos específicos (proyección) → "db.users.find({}, { name: 1, email: 1, _id: 0 })"
  • Ordenar y limitar → "db.users.find({}).sort({ age: -1 }).limit(5)"

UPDATE – Modificar documentos

  • Actualizar un documento
    "db.users.updateOne({ name: "Parvez" }, { $set: { age: 29 } })"
  • Actualizar varios documentos
    "db.users.updateMany({ role: "user" }, { $set: { active: true } })"
  • Incrementar un campo
    "db.users.updateOne({ email: "parvez@example.com" }, { $inc: { points: 10 } })"

DELETE – Eliminar documentos

  • Eliminar un documento → "db.users.deleteOne({ email: "parvez@example.com" })"
  • Eliminar varios documentos → "db.users.deleteMany({ active: false })"

CONSULTAS ÚTILES

  • Contar documentos → "db.users.countDocuments({ active: true })" → 5
  • Obtener valores únicos → "db.users.distinct("role")" → ["admin", "editor", "user"]
  • Crear un índice → "db.users.createIndex({ email: 1 })"

AGGREGATION – Agrupar y calcular

  • Contar usuarios por rol
    "db.users.aggregate([ { $group: { _id: "$role", count: { $sum: 1 } } } ])"
    → [{ _id: "admin", count: 2 }, { _id: "editor", count: 3 }, { _id: "user", count: 10 }]