JavaScript · Sección 18

MongoDB, Mongoose y modelado

Documentos, patrones de acceso, embebido o referencias, esquemas, índices, concurrencia y evolución segura de datos.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber diseñado una API y reconocer recursos, identificadores y validaciones antes de elegir documentos e índices.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Documentos y consultas con Mongoose y validación y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Utiliza un navegador con herramientas de desarrollo y una versión LTS de Node.js con npm. Angular y MongoDB se preparan cuando llegues a esos bloques.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Documentos y consultas y Mongoose y validación? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Modelarás documentos desde patrones de acceso, aplicarás validación e índices y usarás Mongoose sin confundirlo con la base.

Al terminar podrás
  • Guarda juntos los datos que se consultan juntos
  • Una consulta rápida necesita forma de datos e índice coherentes
  • Mongoose agrega modelos; MongoDB conserva el contrato persistente
01
Modelo documental

Guarda juntos los datos que se consultan juntos

MongoDB almacena documentos BSON en colecciones con esquema flexible, no sin diseño. Embebes cuando los datos se leen juntos, tienen tamaño acotado y comparten ciclo de vida; referencias cuando crecen sin límite, se actualizan de forma independiente o se comparten. El modelo parte de consultas y escrituras reales.

01

Documenta cardinalidad y crecimiento.

02

Evita arreglos embebidos sin límite.

03

La duplicación exige una política de actualización.

Comprueba lo aprendido · 01

¿Por qué “MongoDB es flexible” no significa que cualquier forma sirva?

Mostrar respuesta +

Porque forma, tamaño y relaciones determinan consistencia, rendimiento y capacidad de actualizar; siguen necesitando decisiones explícitas.

02
CRUD, validación e índices

Una consulta rápida necesita forma de datos e índice coherentes

Los filtros seleccionan documentos y las actualizaciones usan operadores como $set, $inc y $push. La validación de esquema protege reglas en la base. Los índices aceleran lecturas específicas, pero consumen espacio y encarecen escrituras; un índice unique también protege una regla de unicidad.

01

Proyecta solo campos necesarios.

02

Comprueba matchedCount y modifiedCount.

03

Diseña índices desde filtros y ordenamientos.

Comprueba lo aprendido · 02

¿Por qué no crear un índice para cada campo?

Mostrar respuesta +

Cada índice usa almacenamiento y debe actualizarse en las escrituras. Solo se justifica por consultas, ordenamientos o reglas reales.

03
Mongoose y consistencia

Mongoose agrega modelos; MongoDB conserva el contrato persistente

Un Schema de Mongoose define casting, validadores, índices y middleware de la aplicación. No reemplaza validación crítica en la base ni valida actualizaciones del mismo modo sin opciones correctas. Las transacciones se reservan para invariantes que abarcan varios documentos; no corrigen un modelo mal elegido.

01

Activa runValidators en actualizaciones cuando corresponda.

02

No pongas efectos ocultos en cada hook.

03

Traduce errores de clave duplicada de forma estable.

Comprueba lo aprendido · 03

¿Por qué validar solo en Mongoose puede ser insuficiente?

Mostrar respuesta +

Porque otras aplicaciones o herramientas pueden escribir directamente. Además, algunos caminos de actualización requieren configuración específica.

Resumen de la sección

Tu recorrido en tres ideas

  1. Guarda juntos los datos que se consultan juntos
  2. Una consulta rápida necesita forma de datos e índice coherentes
  3. Mongoose agrega modelos; MongoDB conserva el contrato persistente
PROFUNDIZACIÓN / LABORATORIO GUIADO

Diseña MongoDB desde las consultas

Relaciona carga de trabajo, documento, validación, índices, concurrencia y consistencia entre API y base.

CASO

Un portafolio embebe todos los comentarios, duplica autores y se vuelve lento al ordenar por actualización.

Procedimiento

  1. Enumera lecturas, escrituras, cardinalidad y crecimiento antes del esquema.
  2. Decide qué embeber, referenciar y duplicar; añade validación e índices justificados.
  3. Mide explain, prueba actualizaciones concurrentes y documenta reparación de duplicados.

Evidencia mínima

  • Mapa de patrones de acceso.
  • Índices vinculados a consultas reales.
  • Pruebas de límite, unicidad y conflicto de versión.
Mostrar razonamiento modelo +

Los comentarios sin límite viven separados; el proyecto puede conservar un resumen acotado. Un índice compuesto sigue filtro y orden. La versión evita sobrescribir silenciosamente una edición concurrente.

Para ir más lejos

¿Qué dato derivado guardarías y cómo detectarías que quedó desactualizado?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Elegir embedding o referencias sin estudiar patrones de acceso y crecimiento.

ERROR 02

Crear índices para todo e ignorar el costo de escritura.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña colecciones para proyectos, etiquetas y comentarios; implementa CRUD y justifica validaciones, índices y relaciones.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Cada decisión parte de consultas reales.
  • Los arreglos no crecen sin límite.
  • Las actualizaciones comprueban coincidencia y concurrencia.