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
- Completar los pasos detallados en Configuración inicial de un servidor con Ubuntu 20.04.
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-5.0.asc | sudo apt-key add -
# Agregar el repositorio de MongoDB
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.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
ybindIp: 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:
mongosh
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.