clicko-informatica-mongo-db

En un artículo anterior os hablábamos de los motores de bases de datos no relacionales y sus ventajas e inconvenientes frente los relacionales. Hoy os traemos un artículo entrando en detalle en uno de estos motores NoSQL más conocidos y usados hoy día: MongoDB.

¿Qué es MongoDB?

MongoDB es una base de datos orientada a documentos. Esto quiere decir que en lugar de guardar los datos en registros, guarda los datos en documentos y estos en colecciones. Estos documentos son almacenados en BSON, que es una representación binaria de JSON.

La estructura de un documento es simple y compuesta por pares llave/valor, parecido a las matrices asociativas en un lenguaje de programación. Esto es debido a que MongoDB sigue el formato de JSON: la clave es el nombre del campo y el valor es su contenido, tal y como se puede ver en el siguiente ejemplo:


Ejemplo de documento de MongoDB

En el ejemplo podemos ver como el campo “lenguajes” contiene otro documento que contiene los campos “backend” y “frontend”.

Una de las diferencias más importantes con respecto a las bases de datos relacionales, es que no es necesario seguir un esquema. Los documentos de una misma colección pueden tener esquemas diferentes. Además los documentos nos permiten nuevas estructuras como arrays o subdocumentos que permitirán que de una sola consulta se recupere toda la información y evite así la necesidad de ejecutar consultas de tipo join, como podemos ver en el ejemplo anterior en los campos “backend” y “frontend”. De esta forma evitamos un número elevado de operaciones de I/O (entrada/salida).

Los atributos “_id” (o clave principal) pueden tener el formato que se desee, aunque MongoDB utiliza un valor parecido a un UUID en hexadecimal por defecto si no se ha especificado ninguno.


C
aracterísticas principales

– MongoDB soporta la búsqueda por campos, consultas de rangos y expresiones regulares. Las consultas pueden devolver un campo específico del documento pero también puede ser una función JavaScript definida por el usuario.

Cualquier campo en un documento de MongoDB puede ser indexado de la misma manera que la indexación encontrada en sistemas relacionales convencionales.

– MongoDB soporta el tipo de replicación de “set” primario-secundario. Los secundarios replican los datos del primario y sólo se pueden usar para lectura o para copia de seguridad, pero no se pueden realizar escrituras.

– Además se puede escalar de forma horizontal usando el concepto de “shard”. MongoDB tiene la capacidad de ejecutarse en múltiple servidores, balanceando la carga y/o replicando los datos para poder mantener el sistema funcionando en caso que exista un fallo de hardware.

– Tiene la capacidad de realizar consultas utilizando JavaScript, haciendo que estas sean enviadas directamente a la base de datos para ser ejecutadas.

Y de momento lo dejamos aquí. En próximos artículos veremos en profundidad diferentes operaciones de MongoDB y como se pueden hacer inserciones, consultas y actualizaciones de datos.


Bibliografía:

https://www.mongodb.com/blog
https://www.mongodb.com/docs
https://docs.mongodb.com

 

 

Facebook
Facebook
LinkedIn
Full stack engineer - Analista programador Web

Full Stack Engineer – Analista Programador Web