¿Qué es MongoDB? Architecnología, características y ejemplos
⚡ Resumen inteligente
MongoDB Es una base de datos NoSQL orientada a documentos que se utiliza para el almacenamiento de grandes volúmenes de datos, empleando colecciones y documentos en lugar de tablas y filas. Este recurso explica MongoDB Características, un ejemplo de documento, componentes clave de la arquitectura, razones para usarlo, modelado de datos y en qué se diferencia de una base de datos relacional.
¿Qué es MongoDB?
MongoDB es una base de datos NoSQL orientada a documentos que se utiliza para el almacenamiento de datos de gran volumen. En lugar de utilizar tablas y filas como en las bases de datos relacionales tradicionales, MongoDB hace uso de colecciones y documentos. Los documentos constan de pares clave-valor que son la unidad básica de datos en MongoDBLas colecciones contienen conjuntos de documentos y funciones, lo que equivale a las tablas de una base de datos relacional. MongoDB es una base de datos que salió a la luz a mediados de la década de 2000.
MongoDB Caracteristicas
- Cada base de datos contiene colecciones que, a su vez, contienen documentos. Cada documento puede ser diferente, con un número variable de campos. El tamaño y el contenido de cada documento también pueden variar.
- La estructura del documento está más en línea con la forma en que los desarrolladores construyen sus clases y objetos en sus respectivos lenguajes de programación. Los desarrolladores suelen decir que sus clases no son filas y columnas, sino que tienen una estructura clara con pares clave-valor.
- Las filas (o documentos como se llaman en MongoDB) no necesitan tener un esquema definido de antemano. En cambio, los campos se pueden crear sobre la marcha.
- El modelo de datos disponible dentro MongoDB Permite representar relaciones jerárquicas, almacenar matrices y guardar otras estructuras más complejas con mayor facilidad.
- Escalabilidad organizacional - MongoDB Los entornos son altamente escalables. Empresas de todo el mundo han definido clústeres, algunos de los cuales ejecutan más de 100 nodos con millones de documentos en su base de datos.
MongoDB Ejemplo
El siguiente ejemplo muestra cómo se puede modelar un documento en MongoDB.
- El campo _id es agregado por MongoDB para identificar de forma única el documento en la colección.
- Lo que puede observar es que los datos del pedido (OrderID, Producto y Cantidad), que en RDBMS normalmente se almacenan en una tabla separada, en realidad se almacenan como un documento incrustado en la propia colección. MongoDBEsta es una de las diferencias clave en cómo se modelan los datos en MongoDB.
Componentes clave de MongoDB Architectura
A continuación se muestran algunos de los términos comunes utilizados en MongoDB:
- _id – Este es un campo requerido en cada MongoDB documento. El campo _id representa un valor único en el MongoDB documento. El campo _id es como la clave principal del documento. Si crea un nuevo documento sin un campo _id, MongoDB creará automáticamente el campo. Por ejemplo, si vemos el ejemplo de la tabla de clientes anterior, MongoDB Se añadirá un identificador único de 24 dígitos a cada documento de la colección.
| _Identificación | Identificación del cliente | Nombre del cliente | Solicitar ID |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Colección – Este es un grupoping of MongoDB documentos. Una colección es el equivalente a una tabla que se crea en cualquier otro RDBMS como Oracle o MS SQL. Una colección existe dentro de una única base de datos. Como se vio en la introducción, las colecciones no imponen ningún tipo de estructura.
- Cursor – Este es un puntero al conjunto de resultados de una consulta. Los clientes pueden recorrer un cursor para recuperar resultados.
- Database – Este es un contenedor para colecciones, como en los sistemas de gestión de bases de datos relacionales (RDBMS) donde es un contenedor para tablas. Cada base de datos obtiene su propio conjunto de archivos en el sistema de archivos. MongoDB El servidor puede almacenar múltiples bases de datos.
- Comparación de – Un registro en un MongoDB Una colección se denomina básicamente documento. El documento, a su vez, constará de nombres de campos y valores.
- Campo Un par clave-valor en un documento. Un documento puede tener cero o más campos. Los campos son análogos a las columnas en las bases de datos relacionales. El siguiente diagrama muestra un ejemplo de campos con pares clave-valor. En el ejemplo a continuación, CustomerID y 11 son uno de los pares clave-valor definidos en el documento.
- JSON – Esto se conoce como JavaScript Notación de objetos. Este es un formato de texto sin formato legible por humanos para expresar datos estructurados. Actualmente, JSON es compatible con muchos lenguajes de programación.
Sólo una nota rápida sobre la diferencia clave entre el campo _id y un campo de colección normal. El campo _id se utiliza para identificar de forma única los documentos de una colección y lo agrega automáticamente MongoDB cuando se crea la colección.
Por qué usar MongoDB?
A continuación se presentan algunas de las razones por las que uno debería empezar a usar MongoDB:
- Orientado a documentos - Desde MongoDB es un NoSQL tipo de base de datos, en lugar de tener datos en un formato de tipo relacional, almacena los datos en documentos. Esto hace MongoDB Muy flexible y adaptable a las situaciones y exigencias del mundo empresarial real.
- Consultas ad hoc – MongoDB Admite búsquedas por campo, consultas de rango y búsquedas de expresiones regulares. Se pueden realizar consultas para obtener campos específicos dentro de los documentos.
- Indexación – Se pueden crear índices para mejorar el rendimiento de las búsquedas dentro de MongoDB. Cualquier campo en un MongoDB El documento se puede indexar.
- Replicación – MongoDB puede proporcionar alta disponibilidad con conjuntos de réplicas. Un conjunto de réplicas consta de dos o más MongoDB Cada miembro del conjunto de réplicas puede actuar como réplica principal o secundaria en cualquier momento. La réplica principal es el servidor principal que interactúa con el cliente y realiza todas las operaciones de lectura/escritura. Las réplicas secundarias mantienen una copia de los datos de la principal mediante la replicación integrada. Cuando una réplica principal falla, el conjunto de réplicas cambia automáticamente a la secundaria, que entonces se convierte en el servidor principal.
- Balanceo de carga – MongoDB utiliza el concepto de fragmentación para escalar horizontalmente dividiendo los datos en múltiples MongoDB instancias. MongoDB puede ejecutarse en varios servidores, equilibrando la carga y/o duplicando datos para mantener el sistema en funcionamiento en caso de falla del hardware.
Modelado de datos en MongoDB
Como hemos visto en la sección de introducción, los datos en MongoDB Tiene un esquema flexible. A diferencia de en SQL bases de datos, donde debe tener declarado el esquema de una tabla antes de insertar datos, MongoDBLas colecciones de no imponen la estructura del documento. Este tipo de flexibilidad es lo que hace MongoDB muy poderoso.
Al modelar datos en MongoDBTenga en cuenta lo siguiente:
- ¿Cuáles son las necesidades de la aplicación? – Analice las necesidades comerciales de la aplicación y determine qué datos y qué tipo de datos se requieren. En función de esto, asegúrese de que la estructura del documento se defina adecuadamente.
- ¿Cuáles son los patrones de recuperación de datos? – Si prevé un uso intensivo de consultas, considere la posibilidad de utilizar índices en su modelo de datos para mejorar la eficiencia de las mismas.
- ¿Se producen inserciones, actualizaciones y eliminaciones frecuentes en la base de datos? Reconsidere el uso de índices o incorpore la fragmentación si es necesario en el diseño de su modelo de datos para mejorar la eficiencia general de su sistema. MongoDB ambiente.
Diferencia entre MongoDB y RDBMS
A continuación se presentan algunas de las diferencias de términos clave entre MongoDB y RDBMS:
| RDBMS | MongoDB | Comparación |
|---|---|---|
| Tabla | Colección | In RDBMS, la tabla contiene las columnas y filas que se utilizan para almacenar los datos, mientras que en MongoDB Esta misma estructura se conoce como colección. La colección contiene documentos que, a su vez, contienen campos que, a su vez, son pares clave-valor. |
| elemento Fila | Comparación de | En RDBMS, la fila representa un único elemento de datos estructurado implícitamente en una tabla. En MongoDB, los datos se almacenan en documentos. |
| Columna | Campo | En RDBMS, la columna indica un conjunto de valores de datos. estos en MongoDB se conocen como campos. |
| Une | Documentos incrustados | En los sistemas de gestión de bases de datos relacionales (RDBMS), los datos a veces se distribuyen en varias tablas, y para mostrar una vista completa de todos los datos, a veces se realiza una unión entre tablas para obtener los datos. MongoDB, los datos normalmente se almacenan en una sola colección, pero separados mediante el uso de documentos incrustados. Por lo tanto, no existe el concepto de uniones en MongoDB. |
Además de las diferencias en la terminología, a continuación se muestran algunas otras diferencias:
- Las bases de datos relacionales son conocidas por hacer cumplir la integridad de los datos. Este no es un requisito explícito en MongoDB.
- RDBMS requiere que los datos sean normalizado Primero, para evitar registros huérfanos y duplicados. La normalización de datos requiere más tablas, lo que a su vez genera más uniones de tablas y, por lo tanto, requiere más claves e índices. A medida que las bases de datos crecen, el rendimiento puede convertirse en un problema. Nuevamente, este no es un requisito explícito en MongoDB. MongoDB es flexible y no necesita que los datos se normalicen primero.



