Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/danielcruca/plataformas-abiertas-2026-2c/llms.txt

Use this file to discover all available pages before exploring further.

Esta página reúne todos los métodos, operadores y etapas de agregación de MongoDB utilizados en el curso. Los ejemplos están basados en la base de datos libreria, que incluye las colecciones libros y ventas. Usá esta referencia para consultar la sintaxis correcta cuando trabajes en las prácticas.

Métodos CRUD

Los métodos CRUD son las operaciones fundamentales para interactuar con una colección: Crear, Leer, Actualizar y Eliminar documentos.
MétodoDescripción
db.col.insertOne(doc)Inserta un documento
db.col.insertMany([...])Inserta varios documentos
db.col.find(filtro)Lee documentos
db.col.countDocuments()Cuenta documentos
db.col.updateOne(filtro, op)Actualiza un documento
db.col.updateMany(filtro, op)Actualiza múltiples documentos
db.col.deleteOne(filtro)Elimina un documento
db.col.deleteMany(filtro)Elimina múltiples documentos
db.col.aggregate([pipeline])Ejecuta un pipeline de agregación

Operadores de comparación

Los operadores de comparación se usan dentro del documento de filtro para seleccionar documentos que cumplan una condición sobre el valor de un campo.
OperadorDescripciónEjemplo
$gtMayor que{ cantidad: { $gt: 5 } }
$ltMenor que{ cantidad: { $lt: 10 } }
$gteMayor o igual que{ cantidad: { $gte: 20 } }
$lteMenor o igual que{ cantidad: { $lte: 5 } }
$andAND lógico{ $and: [ {campo: val}, ... ] }

Operadores de actualización

Estos operadores se usan en el segundo argumento de updateOne() y updateMany() para indicarle a MongoDB qué cambio aplicar al documento que coincide con el filtro.
OperadorDescripciónEjemplo
$setCambia el valor de un campo{ $set: { precio: 20 } }
$incIncrementa o decrementa{ $inc: { cantidad: 1 } }
$unsetElimina un campo{ $unset: { campo: "" } }
$inc también puede decrementar: usá un valor negativo, por ejemplo { $inc: { stock: -3 } } para restar 3 al stock.

Ejemplos de actualización

Actualizar el precio de un libro específico:
db.libros.updateOne(
  { titulo: "Rayuela" },
  { $set: { precio: 20 } }
);
Aumentar en 3 el precio de todos los libros de Julio Cortázar:
db.libros.updateMany(
  { "autor.nombre": "Julio", "autor.apellido": "Cortázar" },
  { $inc: { precio: 3 } }
);

Etapas del pipeline de agregación

Un pipeline de agregación es como una línea de producción: los documentos entran por la primera etapa, se transforman, y el resultado pasa a la siguiente etapa. Podés combinar tantas etapas como necesites.
EtapaDescripción
$matchFiltra documentos (equivalente a WHERE)
$groupAgrupa y calcula valores (equivalente a GROUP BY)
$sortOrdena los resultados
$projectSelecciona y transforma campos
$limitLimita la cantidad de resultados
$lookupUne con otra colección (equivalente a JOIN)
$unwindDescomprime un campo de tipo array

Sintaxis general de aggregate

db.ventas.aggregate([
  { $match: { cantidad: { $gt: 0 } } },
  { $group: { _id: "$libro.titulo", total: { $sum: "$cantidad" } } },
  { $sort: { total: -1 } },
  { $limit: 5 }
]);
En $sort, el valor -1 ordena de mayor a menor (descendente) y 1 ordena de menor a mayor (ascendente).

Ejemplos de pipelines

Top 5 libros vendidos — agrupa las ventas por título, suma las cantidades y devuelve los 5 más vendidos.
db.ventas.aggregate([
  {
    $group: {
      _id: "$libro.titulo",
      cantidadVendida: { $sum: "$cantidad" }
    }
  },
  {
    $sort: { cantidadVendida: -1 }
  },
  {
    $limit: 5
  }
]);
Ventas por fecha — filtra ventas de una fecha específica, luego agrupa por título de libro.
db.ventas.aggregate([
  {
    $match: {
      fecha_venta: new Date("2025-05-12")
    }
  },
  {
    $group: {
      _id: "$libro.titulo",
      cantidad_vendida: { $sum: "$cantidad" }
    }
  },
  {
    $sort: { cantidad_vendida: -1 }
  }
]);
Libros vendidos y stock restante — combina la colección ventas con libros usando $lookup para calcular el stock restante.
db.ventas.aggregate([
  {
    $group: {
      _id: "$libro.titulo",
      cantidadVendida: { $sum: "$cantidad" }
    }
  },
  {
    $lookup: {
      from: "libros",
      localField: "_id",
      foreignField: "titulo",
      as: "info_libro"
    }
  },
  {
    $unwind: "$info_libro"
  },
  {
    $project: {
      titulo: "$_id",
      cantidadInicial: "$info_libro.cantidad_stock",
      cantidadVendida: 1,
      cantidadRestante: {
        $subtract: ["$info_libro.cantidad_stock", "$cantidadVendida"]
      }
    }
  },
  {
    $sort: { cantidadVendida: -1 }
  }
]);

Build docs developers (and LLMs) love