Explica qué aporta Mongoose sobre el driver de MongoDB mediante schemas, models, casting, validation, middleware y una capa documental orientada a Node.js.
Mongoose es un ODM construido sobre el driver oficial. Añade schemas de aplicación, casting, validation, models, middleware, virtuals, population y documentos hidratados. Facilita productividad, pero no modifica las garantías reales de MongoDB.
Texto
aplicación
→ Mongoose
→ driver oficial
→ MongoDB Server
El planner, índices, atomicidad, replication, sharding y write concerns siguen perteneciendo al servidor.
save() trabaja con un documento hidratado y change tracking. Es cómodo para lógica document-oriented, pero implica leer antes cuando no tienes el documento.
Para cambios atómicos y concurrentes, utiliza updates con filtros de precondition:
Mongoose usa __v como version key y ofrece opciones de optimistic concurrency en contextos compatibles. Comprueba qué operaciones participan; no asumas que cualquier updateOne() valida versión automáticamente.
Para workflows críticos, incluye versión explícita en el filtro y revisa el resultado.
Hooks pre/post pueden ejecutarse para documents, queries, models y aggregations. Son útiles para comportamiento transversal, pero pueden ocultar efectos.
Declarar index: true o schema.index() expresa índices, pero autoIndex en producción debe decidirse deliberadamente. Construir índices al arrancar múltiples instancias puede ser costoso.
Gestiona índices mediante migrations o deployment controlado y valida con syncIndexes() solo entendiendo qué puede eliminar o crear.
Mongoose añade una capa útil de modelado y ergonomía, pero sus schemas y hooks solo gobiernan operaciones que pasan por el ODM. Diseña primero MongoDB, utiliza updates atómicos, controla índices y population, y trata casting, validation y middleware como comportamiento explícito que necesita tests.
Comprueba lo aprendido
¿Qué diferencia existe entre Schema y server validation?