Saltar al contenido

Lección 8 de 12 · Lectura y práctica

Integración con MongoDB usando Mongoose

Lección práctica para aplicar Integración con MongoDB usando Mongoose dentro de Construcción de APIs RESTful con Node.js y Express, con criterios de decisión, ejemplo guiado, ejercicio y checklist de salida.

Del concepto a la práctica

Taller de esta lección

Un modelo debe reflejar las relaciones que la aplicación necesita consultar. Para inventario, un producto puede tener sku, nombre y stock; el identificador técnico no sustituye al SKU que debe ser único para el negocio. La persistencia también cambia el tratamiento de errores: un duplicado no es un fallo genérico de red.

Ejemplo resuelto

En Mongoose, un esquema puede expresarse así:

js
const mongoose = require('mongoose');
const esquema = new mongoose.Schema({
  sku: { type: String, required: true, unique: true },
  nombre: { type: String, required: true },
  stock: { type: Number, min: 0, validate: Number.isInteger }
});

unique declara un índice único, no un validador. Espera la creación del índice en el entorno local de prueba antes de probar duplicados y trata el error MongoDB 11000 como conflicto. Con los registros A-10, teclado, 4 y B-20, ratón, 7, una consulta de stock total produce 11 mediante 4 + 7, no mediante una cifra inventada. Intentar otro A-10 debe rechazarse y conservar los dos registros originales.

Pruébalo

  1. Define el esquema con tipos, requeridos y mínimo.

  2. Inserta los dos registros completos.

  3. Consulta por SKU y actualiza solo stock de A-10 a 5, usando runValidators: true con las operaciones de actualización de Mongoose que lo admitan.

  4. Simula un duplicado y clasifica su respuesta.

Error frecuente: confiar solo en una comprobación previa de unicidad. Corrígelo manteniendo el índice único de la base de datos y traduciendo también el error de persistencia, porque dos solicitudes pueden competir.

Comprueba tu resultado

Antes de actualizar, la suma reproducible es 4 + 7 = 11; después de cambiar A-10 a 5, es 12. Añade stock 1,5 como caso inválido para comprobar la regla de entero. Un stock -1 falla la validación. El segundo A-10 no crea un tercer documento y la consulta por B-20 devuelve stock 7.

Navegador, API y base de datos conectados por solicitudes, consultas y respuestas en sentidos opuestos.
CursaloMapa de práctica
Del navegador a los datos

El navegador envía una solicitud a la API. El servidor valida la operación y consulta los datos; después devuelve una respuesta que el navegador puede mostrar. La base de datos se comunica con el servidor y no directamente con el navegador.

Ver la infografía en tamaño completo ↗

Sigue con Construcción de APIs RESTful con Node.js y Express

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.