Saltar al contenido

¿Qué es MongoDB? Introducción, arquitectura, características y ejemplo

¿Qué es MongoDB?

MongoDB NoSQL es una base de datos orientada a documentos que se utiliza para el almacenamiento de datos de gran volumen. En lugar de usar tablas y filas como en las bases de datos relacionales tradicionales, MongoDB usa colecciones y documentos. Los documentos son pares clave-valor que son la unidad básica de datos en MongoDB. Las colecciones incluyen conjuntos de documentos y una función equivalente a las tablas de bases de datos relacionales. MongoDB es una base de datos que surgió a mediados de la década de 2000.

En este tutorial, aprenderá:

Funciones de MongoDB

    1. Cada base de datos contiene colecciones que contienen documentos. Cada documento puede ser diferente con un número diferente de campos. El tamaño y el contenido de cada documento pueden diferir.
    2. La estructura de los documentos 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. No es necesario predefinir un esquema para las capas (o documentos como se llaman en MongoDB). En cambio, los lanzamientos se pueden crear sobre la marcha.
    4. El modelo de datos disponible en MongoDB le permite ilustrar más fácilmente las relaciones jerárquicas, almacenar matrices y otras estructuras más complejas.
  1. Escalabilidad: los entornos de MongoDB son altamente escalables. Empresas de todo el mundo han definido clústeres con algunos que ejecutan más de 100 nodos y millones de documentos dentro de la base de datos.

Ejemplo MongoDB

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

  1. MongoDB agrega el campo _id para identificar de forma única el documento en la colección.
  2. Lo que puede notar es que los Datos de pedido (Id. De pedido, Producto y Cantidad) realizados en RDBMS generalmente se almacenan en una tabla separada, y en MongoDB en realidad se almacenan como un documento incrustado en la propia colección. Esta es una de las principales diferencias en cómo se modelan los datos en MongoDB.

Componentes clave de la arquitectura MongoDB

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

  1. _identificación – Este es un campo obligatorio en todos los documentos de MongoDB. El campo _id indica un valor único en un documento de MongoDB. El campo _ es como la clave principal del documento. Si crea un documento nuevo sin un campo _id, MongoDB creará el campo automáticamente. 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ónIdentificación del clienteNombre del clienteSolicitar ID
563479cc8a8a4246bd27d78411Guru99111
563479cc7a8a4246bd47d78422Trevor Smith222
563479cc9a8a4246bd57d78433Nicole333
  1. Colección – Esta es una agrupación de documentos MongoDB. Una colección es una tabla creada en cualquier otro RDMS como Oracle o MS SQL. Una colección está dentro de una sola base de datos. Como puede verse en la introducción, las colecciones no imponen ningún tipo de estructura.
  2. Cursor – Este es un indicador del conjunto de preguntas. Los clientes pueden pasar por un cursor para recuperar los resultados.
  3. Base de datos – 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. El servidor MongoDB puede almacenar varias bases de datos.
  4. Documento – Un registro de la colección MongoDB se denomina básicamente documento. A continuación, el documento contendrá un nombre de campo y valores.
  5. Gort – Un par de valores de nombre en un documento. Un documento contiene cero o más campos. Las bases de datos relacionales contienen campos como columnas.

    El siguiente diagrama muestra un ejemplo de campos con pares clave-valor. Entonces, en el siguiente ejemplo, CustomerID y 11 son uno de los pares clave-valor definidos en el documento.

  1. JSON – Dado JavaScript Nota de objeto. Este es un formato de texto sin formato que es legible por humanos para expresar datos estructurados. Actualmente, JSON es compatible con muchos lenguajes de programación.

La principal diferencia entre el campo _id y un campo de colección normal es solo una nota rápida. El campo _id se utiliza para identificar de forma única los documentos de una colección y MongoDB lo agrega automáticamente cuando se crea la colección.

¿Por qué usar MongoDB?

A continuación se muestran algunas de las razones por las que debería comenzar a usar MongoDB

  1. Orientado a documentos: dado que MongoDB es una base de datos de tipo NoSQL, en lugar de tener datos en un formato de tipo relativo, almacena los datos en documentos. Esto hace que MongoDB sea altamente flexible y adaptable a la situación y necesidades del mundo empresarial.
  2. Consultas ad hoc: MongoDB admite búsquedas de campo, consultas de rango y búsquedas de voz regulares. Se pueden realizar consultas para restaurar campos específicos dentro de los documentos.
  3. Indexación: se pueden crear índices para mejorar el rendimiento de búsqueda dentro de MongoDB. Se puede indexar cualquier campo de un documento de MongoDB.
  4. Replicación: MongoDB puede proporcionar alta disponibilidad con conjuntos de réplicas. Un conjunto de réplicas consta de dos o más estuches DB mongo. Cada miembro de la réplica del conjunto 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 conservan una copia de los datos primarios mediante la replicación incorporada. Cuando falla una réplica principal, el conjunto de réplicas cambia automáticamente al secundario y luego se convierte en el servidor principal.
  5. Equilibrio de carga: MongoDB utiliza el concepto de sardoning para escalar horizontalmente al compartir datos en múltiples escenarios de MongoDB. MongoDB puede ejecutar varios servidores, equilibrando la carga y / o duplicando datos para mantener el sistema en caso de una falla de hardware.

Modelado de datos en MongoDB

Como vimos en la sección Introducción, los datos en MongoDB tienen un esquema flexible. A diferencia de yo SQL bases de datos, donde debe confirmar un esquema de tabla antes de ingresar datos, las colecciones de MongoDB no implementan la estructura del documento. Es este tipo de flexibilidad lo que hace que MongoDB sea tan poderoso.

Tenga en cuenta lo siguiente al modelar datos en Mongo

  1. ¿Cuáles son los requisitos de la aplicación? Observe los requisitos comerciales de la aplicación y vea qué datos y tipo de datos se requieren 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 comprende el uso intensivo de consultas, considere usar índices en su modelo de datos para mejorar la eficiencia de las consultas.
  3. ¿La base de datos se agrega, actualiza y mueve con frecuencia? Considere usar índices o incorporarlos si es necesario en su diseño de modelado de datos para mejorar la eficiencia de su entorno general de MongoDB.

Diferencia entre MongoDB y RDBMS

A continuación se muestran algunas de las diferencias de términos clave entre MongoDB y RDBMS

RDBMS
MongoDB
Diferencia
MesaColecciónEn RDBMS, las columnas y filas utilizadas para almacenar los datos están en la tabla pero, en MongoDB, la misma estructura se llama colección. La colección contiene documentos seguidos de Campos, que son pares clave-valor.
RaeDocumentoEn un RDBMS, la matriz es un elemento de datos que está estructurado implícitamente en una tabla. En MongoDB, los datos se almacenan en documentos.
ColumnaGortEn RDBMS, la columna representa un conjunto de valores de datos. Estos se denominan campos en MongoDB.
VamosDocumentos incrustadosEn RDBMS, los datos a veces se distribuyen en varias tablas y, para mostrar una vista completa de todos los datos, a veces se crean uniones entre tablas para obtener los datos. En MongoDB, los datos generalmente se almacenan en una sola colección, pero se separan mediante documentos incrustados. Por lo tanto, no existe un concepto para unir en MongoDB.

Aparte del término diferencias, a continuación se muestran algunas otras diferencias.

  1. Las bases de datos relativas son conocidas por hacer cumplir la integridad de los datos. Este no es un requisito obvio en MongoDB.
  2. RDBMS requiere que los datos sean normalizado primero para que pueda prevenir y replicar registros huérfanos. Luego, más tablas deben normalizarse y, como resultado, habrá más claves de tabla, por lo que se necesitarán 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 obvio en MongoDB. MongoDB es flexible y no requiere normalizar los datos al principio.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *