Cómo instalar y configurar MongoDB en Ubuntu 20.04

Cómo instalar y configurar MongoDB en Ubuntu 20.04

El backend de toda aplicación web dinámica interactúa de una forma u otra con una base de datos. Por un lado, el sistema relacional tiene ciertas limitaciones para acoplarse con la programación orientada a objetos. A medida que las entidades se vuelven más y más complejas, resulta más difícil vincular unas con otras para obtener los resultados de interés. Por otro lado, las bases de datos NoSQL (Not Only SQL) permiten abordar este desafío mediante estructuras y esquemas flexibles. MongoDB es un sistema de bases de datos no relacionales que goza de gran popularidad. En vez de utilizar tablas para almacenar datos, lo hace en documentos con una estructura similar a JSON. En esta guía aprenderás cómo instalar y configurar MongoDB en Ubuntu 20.04.

Entre las características distintivas de MongoDB podemos nombrar:

  • Incorpora las funcionalidades propias de las bases de datos relacionales, incluyendo la posibilidad de efectuar JOINs.
  • Provee un lenguaje de consultas que permite filtrar y ordenar a partir de cualquier campo, sin importar el nivel en el que se encuentre dentro del documento.
  • Soporta funciones de agregación y geobúsqueda.

Todas estas características están presentes tanto en la versión community como en la enterprise. Entre ambas ediciones existen algunas diferencias puntuales que se detallan en la documentación oficial pero que quedan fuera del alcance de este artículo.

Requisitos previos

Importante! MongoDB no funciona correctamente en WSL (Windows Subsystem for Linux).

Paso 1: Instalación de MongoDB

Lamentablemente, los repositorios de Ubuntu no proveen la última versión disponible de MongoDB. Por esa razón, ejecuta los siguientes comandos para agregar el repositorio oficial a tus archivos de fuentes y luego instalar el paquete. En el sitio oficial de MongoDB puedes consultar la última versión disponible para reemplazar el 4.4 de ser necesario.

# Importar la clave GPG
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
# Agregar el repositorio de MongoDB
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# Actualizar índice de paquetes
sudo apt update

# Instalar MongoDB
sudo apt install mongodb-org

Una vez que la instalación haya finalizado, inicia el servicio y habilítalo para que se ejecute automáticamente luego de futuros reinicios:

sudo systemctl start mongod
sudo systemctl enable mongod
systemctl status mongod

Una vez que MongoDB se esté ejecutando como muestra la imagen de arriba, continúa con el próximo paso.

Paso 2: Revisar la configuración

La configuración de MongoDB se encuentra en el archivo /etc/mongod.conf, donde encontrarás las siguientes variables entre otras. Los valores que se indican son los que aparecen por defecto en una nueva instalación y que mantendremos en esta guía.

  • dbPath: /var/lib/mongodb (dentro de storage) representa el directorio donde se guardarán las bases de datos.
  • path: /var/log/mongodb/mongod.log (debajo de systemLog) es la ubicación del registro de actividad.
  • En net, port: 27017 y bindIp: 127.0.0.1. Estas opciones indican el puerto TCP que utiliza el servicio y la dirección IP asociada. Para cambiar este último dato, se puede emplear otra IP específica o 0.0.0.0 para permitir la conexión en todas.

Paso 3: Crear una base de datos

Para crear una base de datos inicial, ingresa a la consola escribiendo el siguiente comando:

mongo

Si ahora escribes db y presionas Enter, verás la base de datos actual (test). Para crear una nueva, puedes hacerlo directamente mediante la palabra clave use (en minúsculas) seguida del nombre de la base de datos. Posteriormente, al insertar un elemento inicial en una colección (análoga a las tablas en las bases de datos relacionales) se creará una nueva.

El ejemplo que aparece a continuación creará la base de datos llamada sistema y la colección usuarios. Luego agregará el primer registro a esta última y MongoDB devolverá el identificador del objeto recién creado:

use sistema
db.usuarios.insertOne(
     {
         nombre: "Juan",
         edad: 35,
         estado: "Habilitado"
     }
 )

Para salir de la consola, presiona Ctrl + C o utiliza la función quit(). Cualquiera de estas dos acciones te regresará a la línea de comandos de Linux.

A continuación, vuelve a ingresar y selecciona la base de datos para hacer una consulta con find() y mostrar el resultado de una forma amigable con pretty(). Como se utiliza el campo edad como filtro, MongoDB devolverá el único registro existente hasta el momento ya que el valor es mayor que 30:

use sistema
db.usuarios.find( { edad: { $gt: 30 } } ).pretty()

La imagen que aparece debajo muestra la diferencia en el resultado al omitir y al incluir la función pretty():

¡Felicitaciones! Has creado tu primer base de datos no relacional con MongoDB. Para más detalles con respecto a las consultas (tanto desde la consola como a través de varios lenguajes de programación), puedes referirte a estos ejemplos disponibles en la documentación oficial.

Conclusión

En esta guía aprendiste cómo instalar MongoDB en Ubuntu 20.04, y también a crear una base de datos junto con una colección inicial. Gracias al lenguaje de consultas, insertaste un registro y luego completaste una búsqueda. Esto constituye la base para desarrollar aplicaciones que saquen provecho de una base de datos no relacional. En nuestra guía siguiente aprenderás cómo asegurar MongoDB para producción al habilitar autenticación.

¿Te resultó útil esta guía?

Imagen por defecto
Gabriel Cánepa
Gabriel trabaja actualmente como desarrollador full-stack en Scalar, una firma que se dedica a hacer valuaciones de empresas. Es Administrador de Sistemas certificado por la Fundación Linux y previamente ha escrito un gran número de artículos y contenidos técnicos sobre el tema para: DigitalOcean, Linode, Carrera Linux Argentina y Tecmint. Tiene una certificación en programación de la Universidad de Brigham Young-Idaho, y está completando las carreras de programador y analista de sistemas en la Universidad Nacional de Villa Mercedes (UNViMe). En su tiempo libre, Gabriel disfruta leyendo libros de Stephen R. Covey, tocando piano y guitarra, y enseñando conocimientos de programación a su dos hijas.