MongoDB es una base de datos de documentos gratuita y de código abierto. Pertenece a una familia de bases de datos denominada NoSQL, que es diferente de las tradicionales bases de datos SQL basadas en tablas como MySQL y PostgreSQL.

En MongoDB, los datos se almacenan en documentos flexibles similares a JSON donde los campos pueden variar de un documento a otro. No requiere un esquema predefinido y la estructura de datos se puede cambiar con el tiempo.

Este tutorial describe cómo instalar y configurar MongoDB Community Edition en Ubuntu 20.04.

Los repositorios estándar de Ubuntu incluyen una versión obsoleta de MongoDB. Instalar el último MongoDB en Ubuntu es bastante sencillo. Habilitaremos el repositorio MongoDB, importaremos la clave GPG del repositorio e instalaremos el servidor MongoDB.

Instalación de MongoDB en Ubuntu 20.04

Realice los siguientes pasos como root o usuario con privilegios sudo para instalar MongoDB en Ubuntu:

  1. Instale las dependencias necesarias para agregar un nuevo repositorio a través de HTTPS:

    sudo apt updatesudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
  2. Importe la clave GPG del repositorio y agregue el repositorio MongoDB con:

    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'

    Al momento de escribir este artículo, la última versión de MongoDB es la versión 4.4. Para instalar otra versión, reemplácela 4.4con su versión preferida.

  3. Una vez que el repositorio esté habilitado, instale el mongodb-orgmetapaquete escribiendo:

    sudo apt install mongodb-org

    Los siguientes paquetes se instalarán en su sistema:

    • mongodb-org-server- El mongoddaemon y los scripts y configuraciones de inicio correspondientes.
    • mongodb-org-mongos- El mongosdemonio.
    • mongodb-org-shell- Mongo Shell, una interfaz JavaScript interactiva para MongoDB. Se utiliza para realizar tareas administrativas a través de la línea de comandos.
    • mongodb-org-tools- Contiene varias herramientas MongoDB para importar y exportar datos, estadísticas y otras utilidades.
  4. Inicie el demonio MongoDB y habilítelo para que se inicie en el arranque escribiendo:

    sudo systemctl enable --now mongod
  5. Para verificar si la instalación se completó correctamente, conéctese al servidor de la base de datos MongoDB utilizando la mongoherramienta e imprima el estado de la conexión:

    mongo --eval 'db.runCommand({ connectionStatus: 1 })'

    La salida se verá como a continuación:

    MongoDB shell version v4.4.0
    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") }
    MongoDB server version: 4.4.0
    {
      "authInfo" : {
        "authenticatedUsers" : [ ],
        "authenticatedUserRoles" : [ ]
      },
      "ok" : 1
    }

    Un valor de 1para el okcampo indica éxito.

Configuración de MongoDB

El archivo de configuración de MongoDB se nombra mongod.confy se encuentra en el /etcdirectorio. El archivo está en formato YAML .

Los ajustes de configuración predeterminados son suficientes en la mayoría de los casos. Sin embargo, para entornos de producción, recomendamos descomentar la sección de seguridad y habilitar la autorización, como se muestra a continuación:

sudo nano /etc/mongod.conf
/etc/mongod.conf
security:
  authorization: enabled

La authorizationopción habilita el control de acceso basado en roles (RBAC) que regula el acceso de los usuarios a los recursos y las operaciones de la base de datos. Si esta opción está deshabilitada, cada usuario tendrá acceso a todas las bases de datos y podrá realizar cualquier acción.

Al editar el archivo de configuración de MongoDB, reinicie el servicio mongod para que los cambios surtan efecto:

sudo systemctl restart mongod

Para encontrar más información sobre las opciones de configuración disponibles en MongoDB 4.4, visite la página de documentación Opciones del archivo de configuración .

Creación de un usuario administrativo de MongoDB

Si habilitó la autenticación de MongoDB, deberá crear un usuario administrativo que pueda acceder y administrar la instancia de MongoDB.

Acceda al shell de mongo:

mongo

Desde dentro del shell de MongoDB, escriba el siguiente comando para conectarse a la base de admindatos:

use admin
switched to db admin

Ejecute el siguiente comando para crear un nuevo usuario llamado mongoAdmin, con contraseña changeMeuserAdminAnyDatabaserol:

db.createUser(
  {
    user: "mongoAdmin",
    pwd: "changeMe",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Successfully added user: {
	"user" : "mongoAdmin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
No olvide establecer una contraseña más segura. Puede nombrar al usuario administrativo de MongoDB como desee.

Una vez hecho esto, salga del shell mongo con:

quit()

Para probar los cambios, acceda al shell de mongo utilizando el usuario administrativo que ha creado previamente:

mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin

Ejecute show usersy debería ver información sobre el usuario recién creado:

show users
{
	"_id" : "admin.mongoAdmin",
	"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),
	"user" : "mongoAdmin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}

También puede intentar acceder al shell mongo sin ningún argumento (solo escriba mongo) y vea si puede enumerar a los usuarios usando los mismos comandos que arriba.

Conclusión

Le mostramos cómo instalar y configurar MongoDB en Ubuntu 20.04. Para obtener más información sobre este tema, visite el Manual de MongoDB .

Si encuentra un problema o tiene comentarios, deje un comentario a continuación.