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í:
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
Define el esquema con tipos, requeridos y mínimo.
Inserta los dos registros completos.
Consulta por SKU y actualiza solo
stockde A-10 a 5, usandorunValidators: truecon las operaciones de actualización de Mongoose que lo admitan.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.

Mapa de prácticaEl 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.