Docs Menu
Docs Home
/ /

Integración con Mongoose

Mongoose es una biblioteca de modelado de datos de objetos (ODM) basada en Node.js que proporciona modelado de datos basado en esquemas, validación, creación de consultas y enlaces de lógica empresarial.

Un ODM es similar a un Object Relational Mapper (ORM) utilizado con bases de datos SQL tradicionales, pero diseñado específicamente para el modelo de datos basado en documentos de MongoDB.

Tip

Compatibilidad con Mangosta

Para obtener más información sobre la compatibilidad de Mongoose con diferentes versiones del servidor MongoDB, consulte la página Compatibilidad de Mongoose en la documentación de Mongoose.

El Modelado de Datos de Objetos (ODM) crea una relación estructurada entre el código de la aplicación y los documentos de la base de datos. Con un ODM como Mongoose, se definen esquemas a nivel de aplicación que se asignan a colecciones de MongoDB y se aplica la estructura a los documentos dentro de dichas colecciones.

MongoDB proporciona un modelo de datos flexible que te permite modificar el esquema de la base de datos a medida que tu aplicación evoluciona. Sin embargo, tu caso de uso podría requerir coherencia en la estructura de datos entre los documentos de una colección.

Mongoose aborda esta necesidad de coherencia proporcionando las siguientes características:

  • Define la estructura y los tipos de datos de tus documentos

  • Generar modelos a partir de esquemas para interactuar con colecciones

  • Aplicar reglas de validación de datos a nivel de aplicación

  • Ejecutar lógica personalizada antes o después de las operaciones de la base de datos

  • Construya y ejecute consultas de bases de datos con una API fluida

  • Referenciar documentos de otras colecciones (similar a joins)

Mongoose aplica esquemas a nivel de aplicación. Se define un esquema que especifica la estructura de los documentos de una colección, incluyendo nombres de campo, tipos de datos y reglas de validación. Mongoose valida los datos con este esquema antes de realizar operaciones en la base de datos.

El esquema y las reglas de validación solo existen en el código de su aplicación Node.js. El servidor MongoDB desconoce estas restricciones y acepta cualquier documento BSON válido que envíe su aplicación.

Mongoose requiere que definas esquemas y modelos antes de interactuar con tus colecciones. Este enfoque estructurado puede resultar familiar para los desarrolladores con experiencia en bases de datos relacionales u otros ORM.

La desventaja es una menor flexibilidad. Cuando necesite modificar su estructura de datos, deberá actualizar sus esquemas de Mongoose.

Mongoose valida los datos de dos maneras. Primero, al definir los tipos de campo en el esquema, se especifican los tipos de datos que admite cada campo. Mongoose rechaza las operaciones que intentan insertar datos que no coinciden con los tipos definidos.

En segundo lugar, puede agregar reglas de validación específicas, como campos obligatorios, valores mínimos o máximos, restricciones de longitud de cadena o funciones de validación personalizadas.

Estas reglas de validación solo se aplican al usar Mongoose en su aplicación Node.js. Otras aplicaciones o herramientas de base de datos pueden omitir estas reglas, ya que solo existen en el código de su aplicación.

Para obtener más información sobre la validación de datos mediante el controlador MongoDB Node.js junto con la validación de esquema incorporada de MongoDB, consulte la guía de validación de esquema de MongoDB en el manual del servidor.

Tanto Mongoose como el controlador MongoDB Node.js admiten la combinación de documentos de múltiples colecciones, de forma similar a las uniones en bases de datos relacionales.

Mongoose proporciona la populate() Método para referenciar documentos de otras colecciones. Las referencias se definen en el esquema especificando la colección a la que hacen referencia. ObjectId es un tipo común para las referencias, pero Mongoose también admite el uso de otros tipos, como cadenas, números, UUID y búferes. Al realizar consultas, Mongoose puede reemplazar automáticamente estas referencias con los documentos reales.

Mongoose realiza operaciones de rellenado mediante la ejecución de múltiples consultas. Este enfoque puede ser beneficioso en ciertos escenarios, como al trabajar con escaneos grandes o cuando faltan índices.

MongoDB proporciona la etapa de agregación $lookup para realizar una acción similar a las uniones externas izquierdas entre colecciones de la misma base de datos. El controlador Node.js de MongoDB proporciona acceso directo a esta función mediante pipelines de agregación.

El operador $lookup se ejecuta como una única operación de canalización de agregación. Este enfoque puede ofrecer ventajas de rendimiento en algunos casos, pero el rendimiento real depende de factores como el tamaño de los datos, los índices disponibles y los patrones de consulta.

Para aprender a instalar Mongoose, conectarse a MongoDB y realizar operaciones CRUD mediante esquemas y modelos de Mongoose, consulte Tutorialde introducción a Mongoose.

Volver

Proxy SOCKS

En esta página