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.

El curso utiliza una base de datos de ejemplo llamada libreria que contiene tres colecciones: libros, usuarios y ventas. Estos datos se usan en todos los ejercicios de MongoDB, desde operaciones CRUD básicas hasta consultas de agregación más avanzadas. Importar esta base de datos es el primer paso práctico antes de comenzar con las semanas de contenido.

Base de datos: libreria

La base de datos libreria modela un sistema simple de venta de libros. Las tres colecciones se relacionan entre sí de la siguiente manera:
  • libros — Catálogo de libros disponibles. Cada documento representa un título con sus datos de autor, precio y stock disponible.
  • usuarios — Usuarios registrados en el sistema, con roles diferenciados (cliente, vendedor, admin).
  • ventas — Registros de transacciones que vinculan un usuario con el libro comprado, indicando cantidad, total y fecha de la venta.

Colección libros

Cada documento de la colección libros sigue el siguiente esquema. El campo autor es un subdocumento embebido con los datos del escritor.
{
  "_id": { "$oid": "..." },
  "titulo": "string",
  "autor": {
    "nombre": "string",
    "apellido": "string",
    "nacionalidad": "string"
  },
  "precio": "number",
  "cantidad_stock": "number"
}
A continuación se muestran los primeros tres documentos reales de esta colección:
[
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd0" },
    "titulo": "Cien años de soledad",
    "autor": {
      "nombre": "Gabriel",
      "apellido": "García Márquez",
      "nacionalidad": "Colombiana"
    },
    "precio": 15.99,
    "cantidad_stock": 20
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd1" },
    "titulo": "El Aleph",
    "autor": {
      "nombre": "Jorge Luis",
      "apellido": "Borges",
      "nacionalidad": "Argentina"
    },
    "precio": 12.5,
    "cantidad_stock": 15
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd2" },
    "titulo": "Rayuela",
    "autor": {
      "nombre": "Julio",
      "apellido": "Cortázar",
      "nacionalidad": "Argentina"
    },
    "precio": 18,
    "cantidad_stock": 12
  }
]

Colección usuarios

La colección usuarios almacena las cuentas del sistema. Cada documento incluye un nombre de usuario único, dirección de email, contraseña (hasheada en un entorno real), un rol que determina los permisos del usuario, y la fecha en que fue creada la cuenta.
{
  "_id": { "$oid": "..." },
  "username": "string",
  "email": "string",
  "hashed_password": "string",
  "rol": "cliente | vendedor | admin",
  "fecha_creacion": { "$date": "ISO 8601 string" }
}
Ejemplos de documentos de la colección:
[
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd9" },
    "username": "juanperez",
    "email": "juan@example.com",
    "hashed_password": "supersegura123",
    "rol": "cliente",
    "fecha_creacion": { "$date": "2025-05-14T00:13:32.275Z" }
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bda" },
    "username": "admin1",
    "email": "admin@example.com",
    "hashed_password": "admin123",
    "rol": "admin",
    "fecha_creacion": { "$date": "2025-05-14T00:13:32.275Z" }
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bdb" },
    "username": "librera99",
    "email": "libros@example.com",
    "hashed_password": "libroslibros",
    "rol": "vendedor",
    "fecha_creacion": { "$date": "2025-05-14T00:13:32.275Z" }
  }
]

Colección ventas

La colección ventas registra cada transacción del sistema. En lugar de guardar referencias por _id, los documentos embeban directamente el titulo del libro y el username del usuario, facilitando la lectura de los registros sin necesidad de hacer joins. También incluyen la cantidad de ejemplares vendidos, el total de la operación y la fecha_venta.
{
  "_id": { "$oid": "..." },
  "libro": { "titulo": "string" },
  "fecha_venta": { "$date": "ISO 8601 string" },
  "cantidad": "number",
  "total": "number",
  "usuario": { "username": "string" }
}
Ejemplos de documentos de la colección:
[
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd5" },
    "libro": { "titulo": "Cien años de soledad" },
    "fecha_venta": { "$date": "2025-05-10T00:00:00.000Z" },
    "cantidad": 2,
    "total": 31.98,
    "usuario": { "username": "librera99" }
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd6" },
    "libro": { "titulo": "Rayuela" },
    "fecha_venta": { "$date": "2025-05-12T00:00:00.000Z" },
    "cantidad": 1,
    "total": 18,
    "usuario": { "username": "juanperez" }
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd7" },
    "libro": { "titulo": "El Aleph" },
    "fecha_venta": { "$date": "2025-05-11T00:00:00.000Z" },
    "cantidad": 3,
    "total": 37.5,
    "usuario": { "username": "librera99" }
  },
  {
    "_id": { "$oid": "6823e02cea9cb5e5156c4bd8" },
    "libro": { "titulo": "Pedro Páramo" },
    "fecha_venta": { "$date": "2025-05-13T00:00:00.000Z" },
    "cantidad": 1,
    "total": 13.75,
    "usuario": { "username": "admin1" }
  }
]

Importar los datos

Para trabajar con estos datos en tu entorno local o en MongoDB Atlas, seguí la guía de importación paso a paso:

Importar los datos

Guía completa para importar los archivos JSON de la colección libreria usando MongoDB Compass o mongoimport desde la terminal.
Los archivos JSON están disponibles en el repositorio GitHub del curso bajo la ruta Semana 01 a 05/mongodb/importar-datos/archivos-json/. Encontrarás un archivo por cada colección: libreria.libros.json, libreria.usuarios.json y libreria.ventas.json.

Build docs developers (and LLMs) love