Lenguajes y frameworks recomendados para usar con MongoDB
Continuamos profundizando en MongoDB detallando en este artículo algunos de los lenguajes de programación y frameworks que combinan perfectamente con esta base...
Vamos a profundizar esta vez en MongoDB, explicando qué es, sus características principales y cómo funciona, además de las ventajas y desventajas que presenta su uso.
Tabla de contenidos
Cuando hablamos de bases de datos tendemos a pensar en SQL y el modelo de bases de datos relacional, pero existen alternativas como los modelos no relacionales donde MongoDB es quizá el ejemplo más destacado.
MongoDB (del inglés humongous, "enorme") es un sistema de base de datos NoSQL orientado a documentos de código abierto y escrito en C++, que en lugar de guardar los datos en tablas lo hace en estructuras de datos BSON (similar a JSON) con un esquema dinámico. Al ser un proyecto de código abierto, sus binarios están disponibles para los sistemas operativos Windows, GNU/Linux, OS X y Solaris y es usado en múltiples proyectos o implementaciones en empresas como MTV Network, Craigslist, BCI o Foursquare.
La razón de esto es que MongoDB, al estar escrito en C++, cuenta con una más que notoria capacidad para aprovechar los recursos de la máquina y, al estar licenciado bajo una licencia GNU AGPL 3.0, es posible adaptarlo a nuestras necesidades.
Si no conoces MongoDB, al principio puede que te sientas un poco perdido. Al no tener tablas ni nada que se parezca a SQL como referencia, tendremos que estudiar un poco su filosofía y características para entender cómo manejar los datos. Aun así, MongoDB es una seria candidata para almacenar los datos de nuestras aplicaciones.
Si tuviéramos que resumir a una la principal característica a destacar de MongoDB, sin duda esta sería la velocidad, que alcanza un balance perfecto entre rendimiento y funcionalidad gracias a su sistema de consulta de contenidos. Pero sus características principales no se limitan solo a esto, MongoDB cuenta, además, con otras que lo posicionan como el preferido de muchos desarrolladores.
Características principales:
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. Estos documentos son almacenados en BSON, que es una representación binaria de JSON.
Esto representa una de las diferencias más importantes con respecto a las bases de datos relacionales. Y resulta que no es que no es necesario seguir un esquema. Los documentos de una misma colección - concepto similar a una tabla de una base de datos relacional -, pueden tener esquemas diferentes.
Imaginemos que tenemos una colección a la que llamamos Personas. Un documento podría almacenarse de la siguiente manera:
{
Nombre: "Miguel",
Apellidos: "Parada",
Edad: 39,
Aficiones: ["Música","Ciclismo","Baloncesto"],
Amigos: [
{
Nombre:"Marie",
Edad:35 },
{
Nombre:"Elsa",
Edad:42
}
]
}
Como se puede ver el documento es exactamente igual a lo que conocemos de un documento JSON.
Lo interesante viene cuando queremos almacenar en una misma colección un documento como este: { Nombre: "Roger Rabbit", Estudios: "Dibu y conejo", Amigos:102 } Tal como podemos ver, este no sigue el mismo esquema del primero, añadiendo algún campo nuevo que no existe en el documento anterior o incluso de un tipo distinto, pero no importa. Algo que resulta impensable en una base de datos relacional como SQL es posible en MongoDB.
¿Sirve MongoDB para todo y todo? Antes de entrar a definir por qué usar MondoDB en tu proyecto, conviene revisar pros y contras. MongoDB es un recurso muy interesante para desarrolladores pero no es perfecto. Por ejemplo:
VENTAJAS
DESVENTAJAS
MongoDB es un proyecto en constante evolución, por lo que cada versión ofrece nuevas e interesantes mejoras. Como desarrollador, la principal razón para usar MongoDB reside en su velocidad y su capacidad para añadir en una misma colección registros con diferentes campos de manera mucho más flexible que una base de datos basada en un modelo relacional.
Al estar escrito en C++ es multiplataforma e instalarlo en Ubuntu o Windows es relativamente fácil. De hecho, cómo instalar MongoDB en Ubuntu es tan fácil como correr la instrucción sudo apt install -y mongodb
desde el terminal, por lo que no hay excusa posible para no darle una oportunidad.
Tras conocer las características de MongoDB, para profundizar más en el tema de forma profesional y aprendera crear y gestionar bases de datos NoSQL, te recomendamos realizar este curso de MongoDB. Aprende a utilizar la base de datos distribuida preferida por los desarrolladores de aplicaciones modernas, por su nivel de productividad y facilidad de uso en el cloud.
También te puede interesar
Continuamos profundizando en MongoDB detallando en este artículo algunos de los lenguajes de programación y frameworks que combinan perfectamente con esta base...
En este taller aprenderemos a crear y consultar un clúster de Amazon DocumentDB (con compatibilidad con MongoDB).
En este Laboratorio construiremos una REST API paso a paso con el framework de NestJS, PostgreSQL y Docker....