¿Qué es MongoDB? Introducción, Architecnología, características y ejemplos

¿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 MongoDB. Las colecciones contienen conjuntos de documentos y funciones que son equivalentes a las tablas de bases de datos relacionales. MongoDB es una base de datos que salió a la luz a mediados de la década de 2000.

MongoDB Caracteristicas

  1. 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 pueden ser diferentes entre sí.
  2. 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.
  3. Las filas (o documentos como se llaman en MongoDB) no necesita tener un esquema definido de antemano. En cambio, los campos se pueden crear sobre la marcha.
  4. El modelo de datos disponible dentro MongoDB Permite representar relaciones jerárquicas, almacenar matrices y otras estructuras más complejas con mayor facilidad.
  5. Escalabilidad – La MongoDB Los entornos son muy escalables. Empresas de todo el mundo han definido clústeres, algunos de los cuales ejecutan más de 100 nodos con alrededor de millones de documentos dentro de la base de datos.

MongoDB Ejemplo

El siguiente ejemplo muestra cómo se puede modelar un documento en MongoDB.

  1. El campo _id es agregado por MongoDB para identificar de forma única el documento en la colección.
  2. Lo que puede notar es que los datos del pedido (ID de pedido, producto y cantidad), que en RDBMS normalmente se almacenarán en una tabla separada, mientras que en MongoDB en realidad, se almacena como un documento incrustado en la propia colección. Esta es una de las diferencias clave en cómo se modelan los datos en MongoDB.

MongoDB Ejemplo

Componentes clave de MongoDB Architectura

A continuación se muestran algunos de los términos comunes utilizados en MongoDB

  1. _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. Entonces, por ejemplo, si vemos el ejemplo de la tabla de clientes anterior, Mongo DB agregará 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
  1. Colecciones – Esta es una agrupación de MongoDB documentos. Una colección es el equivalente a una tabla que se crea en cualquier otro RDMS como Oracle o MS SQL. Una colección existe dentro de una única base de datos. Como se ve en la introducción, las colecciones no imponen ningún tipo de estructura.
  2. Cursor – Este es un puntero al conjunto de resultados de una consulta. Los clientes pueden recorrer un cursor para recuperar resultados.
  3. Database – Este es un contenedor para colecciones como en RDMS, donde es un contenedor para tablas. Cada base de datos obtiene su propio conjunto de archivos en el sistema de archivos. A MongoDB El servidor puede almacenar múltiples bases de datos.
  4. Comparación de – Un registro en un MongoDB La colección se llama básicamente documento. El documento, a su vez, estará formado por el nombre del campo y los valores.
  5. Campo – Un par nombre-valor en un documento. Un documento tiene cero o más campos. Los campos son análogos a las columnas en bases de datos relacionales. El siguiente diagrama muestra un ejemplo de campos con pares clave-valor. Por lo tanto, en el siguiente ejemplo, CustomerID y 11 son uno de los pares clave-valor definidos en el documento.

Componentes clave de MongoDB Architectura

  1. JSON – Esto se conoce como JavaGuión 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 detallan algunas de las razones por las que uno debería comenzar a usar MongoDB

  1. 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 la situación y los requisitos del mundo empresarial real.
  2. 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.
  3. Indexación: se pueden crear índices para mejorar el rendimiento de las búsquedas dentro MongoDB. Cualquier campo en un MongoDB El documento se puede indexar.
  4. replicación – MongoDB puede proporcionar alta disponibilidad con conjuntos de réplicas. Un conjunto de réplicas consta de dos o más instancias de base de datos mongo. Cada miembro del conjunto de réplicas puede actuar en el rol de réplica primaria 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 incorporada. Cuando falla una réplica principal, el conjunto de réplicas cambia automáticamente al servidor secundario y luego se convierte en el servidor principal.
  5. 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 Mongo, tenga en cuenta lo siguiente

  1. ¿Cuáles son las necesidades de la aplicación? Observe las necesidades comerciales de la aplicación y vea qué datos y el tipo de datos necesarios para la aplicación. En base a esto, asegúrese de que la estructura del documento se decida en consecuencia.
  2. ¿Qué son los patrones de recuperación de datos? Si prevé un uso intensivo de consultas, considere el uso de índices en su modelo de datos para mejorar la eficiencia de las consultas.
  3. ¿Se realizan inserciones, actualizaciones y eliminaciones frecuentes en la base de datos? Reconsidere el uso de índices o incorpore fragmentación si es necesario en su diseño de modelado de datos para mejorar la eficiencia de su análisis general. 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 Diferencias
Mesa Colecciones 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.
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 RDBMS, los datos a veces se distribuyen en varias tablas y, para mostrar una vista completa de todos los datos, a veces se forma una combinación entre tablas para obtener los datos. En MongoDB, los datos normalmente se almacenan en una única colección, pero se separan mediante documentos integrados. Entonces no existe el concepto de uniones en MongoDB.

Además de las diferencias de términos, a continuación se muestran algunas otras diferencias.

  1. Las bases de datos relacionales son conocidas por hacer cumplir la integridad de los datos. Este no es un requisito explícito en MongoDB.
  2. 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 luego dará como resultado más uniones de tablas, lo que requerirá más claves e índices. A medida que las bases de datos comienzan a crecer, el rendimiento puede comenzar a 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.