Este es el primer post en la serie sobre Mongo, en el cuál introduciremos dicha bases de datos NoSQL y veremos sus características e instalación.

Created 2020-03-05
Modified 2020-03-20

Otros posts en esta serie:

Este post está hecho en colaboración con un compañero.


Definición

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. Una de las principales diferencias respecto a las bases de datos relacionales es que no necesita seguir ningún esquema, los documentos de una misma colección pueden tener esquemas diferentes.

MongoDB está escrito en C++, aunque las consultas se hacen pasando objetos JSON como parámetro.

{
        "_id" : ObjectId("52f602d787945c344bb4bda5"),
        "name" : "Tyrion",
        "hobbies" : [ 
            "books", 
            "girls", 
            "wine"
        ],
        "friends" : [ 
            {
                "name" : "Bronn",
                "ocuppation" : "sellsword"
            }, 
            {
                "name" : "Shae",
                "ocuppation" : "handmaiden"
            }
        ]
 }

Características

MongoDB 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, también cuenta con otras que lo posicionan como el preferido de muchos desarrolladores de aplicaciones como aplicaciones móviles, gaming, logging o e-commerce.

Algunas de las principales características de esta base de datos son:

En cuanto a la arquitectura, podríamos decir que divide en tres partes: las bases de datos, las colecciones y los documentos (que contienen los campos de cada entrada).

Arista dentro del Teorema CAP

MongoDB es CP por defecto, es decir, garantiza consistencia y tolerancia a particiones (fallos). Pero también podemos configurar el nivel de consistencia, eligiendo el número de nodos a los que se replicarán los datos. O podemos configurar si se pueden leer datos de los nodos secundarios (en MongoDB solo hay un servidor principal, que es el único que acepta inserciones o modificaciones). Si permitimos leer de un nodo secundario mediante la replicación, sacrificamos consistencia, pero ganamos disponibilidad.

Descarga e instalación

Windows

Descargar el archivo desde https://www.mongodb.com/download-center#production

  1. Doble clic en el archivo .msi
  2. El instalador de Windows lo guía a través del proceso de instalación. Si elige la opción de instalación personalizada, puede especificar un directorio de instalación. MongoDB no tiene ninguna otra dependencia del sistema. Puede instalar y ejecutar MongoDB desde cualquier carpeta que elija.
  3. Ejecutar el .exe que hemos instalado.

Linux

Abrimos una terminal y ejecutamos:

sudo apt-get update
sudo apt install -y mongodb-org

Luego comprobamos el estado del servicio:

sudo systemctl start mongod
sudo systemctl status mongod

Finalmente ejecutamos la base de datos con el comando:

sudo mongo

macOS

Abrimos una terminal y ejecutamos:

brew update
brew install mongodb

Iniciamos el servicio:

brew services start mongodb

Referencias