El modelado de datos se refiere a la organización de datos dentro de una base de datos y los vínculos entre las entidades relacionadas.
MongoDB tiene un modelo de datos flexible que te permite almacenar datos polimórficos, lo que significa:
No es obligatorio que los documentos de una misma colección tengan el mismo conjunto de campos.
El tipo de dato de un campo puede variar entre documentos dentro de una colección.
Un principio fundamental del modelado de datos en MongoDB es que los datos a los que se accede juntos deben almacenarse juntos. Deberías estructurar tu modelo de datos en función de los patrones de acceso a los datos de tu aplicación para optimizar el rendimiento.
Para obtener más información,consulte Mejores prácticas para el modelado de datos en MongoDB.
Casos de uso
Considera los siguientes ejemplos que aprovechan la flexibilidad del modelo orientado a documentos:
Tu empresa rastrea en qué departamento trabaja cada empleado. Se puede realizar la integración de la información de departamento en el
employeeColección para devolver información relevante en una sola consulta.Tu aplicación de comercio electrónico muestra las cinco revisiones más recientes en la página de un producto. Puedes almacenar todas las revisiones, incluyendo las más antiguas, en una colección separada porque no se acceden con tanta frecuencia.
Su tienda de ropa debe crear una aplicación de una sola página para un catálogo de productos. Los diferentes productos tienen diferentes atributos y pueden tener diferentes campos y tipos de campos de documentos. A pesar de estas diferencias, puede almacenar todos los productos en la misma colección.
Empezar
Para garantizar que su modelo de datos tenga una estructura lógica y alcance un rendimiento óptimo, planifique su esquema antes de usar la base de datos a escala de producción. Para determinar e implementar su modelo de datos, siga el proceso de diseño de esquemas.
Detalles
Desarrollo con un modelo de datos flexible
El esquema flexible de MongoDB te permite mejorar iterativamente tu modelo de datos mientras desarrollas tu aplicación.
Desarrollando con el esquema flexible de MongoDB, puedes:
Asigne su modelo de datos directamente a los objetos que existen en el código.
Añadir la validación de esquemas solo a las secciones y aspectos de los documentos que requieran un control más estricto.
Para ver un ejemplo de cómo puedes modificar iterativamente tu modelo de datos, consulta Modifica tu modelo de datos.
Relaciones de documentos
El valor de un campo de documento puede incluir cualquiera de los tipos de datos BSON, incluidos otros documentos, arreglos y arreglos de documentos. Estos objetos se pueden usar para representar diferentes tipos de relaciones en tu modelo de datos, que incluyen:
Relaciones uno a uno: Cada documento está asociado exactamente a otro documento. Por ejemplo, un paciente tiene exactamente un registro médico.
Relaciones uno a muchos: Cada documento está asociado con varios otros documentos. Por ejemplo, un usuario de una aplicación web puede tener muchas publicaciones o comentarios.
Relaciones de muchos a muchos: Cada documento puede estar asociado con múltiples otros documentos, y viceversa. Por ejemplo, un estudiante puede estar inscrito en múltiples cursos, y cada curso puede tener múltiples estudiantes.
En MongoDB, puedes modelar relaciones ya sea embebiendo o referenciando tus datos. Al elegir el mejor método de vinculación de datos, puedes optimizar el modelo de datos para los patrones de acceso específicos de tu aplicación.
Para obtener más información sobre el modelado de relaciones en MongoDB, consulte:
Diseño de esquemas: Diferencias entre bases de datos relacionales y de documentos
Al diseñar un esquema para una base de datos de documentos como MongoDB, tenga en cuenta las siguientes diferencias importantes con las bases de datos relacionales:
Comportamiento de base de datos relacional | Comportamiento de la base de datos de documentos |
|---|---|
Debes determinar el esquema de una tabla antes de insertar datos. Si bien puedes cambiar tu modelo de datos en una base de datos relacional, un esquema fijo requiere una mayor planificación inicial, incluido considerar cómo los cambios afectan a las referencias dependientes. | Puedes cambiar fácilmente tu modelo de datos con el tiempo a medida que evolucionan las necesidades de tu aplicación. |
A menudo es necesario unir datos de varias tablas diferentes para devolver los datos que necesita su aplicación. | El modelo de datos flexibles te permite almacenar datos según los patrones de acceso a los datos de tu aplicación. Por ejemplo, la inserción de datos te permite evitar uniones complejas entre varias colecciones, al tiempo que mejora el rendimiento y reduce la carga de trabajo de tu implementación. |