LinuxParty
MongoDB: Una Alternativa NoSQL de Alto Rendimiento
MongoDB se destaca como una base de datos NoSQL de código abierto centrada en documentos, desafiando las convenciones de las bases de datos relacionales tradicionales. El término "NoSQL" (No sólo SQL) refleja su enfoque innovador para el almacenamiento y manipulación de datos, en contraste con las bases de datos SQL como MySQL u Oracle.
A diferencia de las bases de datos relacionales que emplean SQL, MongoDB almacena datos en un formato similar a JSON, conocido como BSON (JSON binario). Esta elección no solo simplifica el manejo de datos, sino que también reduce significativamente el tamaño de los documentos. Al adoptar el modelo de pares clave-valor, MongoDB logra un rendimiento excepcional en operaciones de lectura y consulta.
Es crucial destacar que MongoDB no sacrifica la integridad de los datos. A pesar de su enfoque NoSQL, la base de datos soporta transacciones ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad). La atomicidad a nivel de base de datos garantiza operaciones atómicas, como la escritura simultánea de varios documentos en una colección.
Entre las ventajas distintivas de MongoDB se encuentra una configuración de replicación más sencilla en comparación con las bases de datos relacionales. Su popularidad actual en el mercado de bases de datos NoSQL se atribuye a la riqueza de características, flexibilidad y facilidad de uso. Inspirado en bases de datos populares como Cassandra y Redis, MongoDB ha ganado terreno como una opción confiable.
¿Cómo se instala MongoDB en una máquina Linux? La respuesta es directa y accesible. Una de las formas más sencillas es utilizar un gestor de paquetes, y en este caso, nos centraremos en Dnf para instalar MongoDB en una máquina AlmaLinux 9.
Requisitos:
Este tutorial asume que tienes AlmaLinux 9 ya instalado y funcionando bien en tu máquina, y que tienes acceso de root a esta máquina.
Paso 1. Actualizar tu sistema:
En primer lugar, tienes que actualizar tu sistema con las últimas listas de paquetes mediante el comando te dnf, como se muestra a continuación.
sudo dnf -y update
Si ya lo has hecho recientemente, puedes saltarte este paso.
Paso 2. Instalar el repositorio de MongoDB
Los repositorios por defecto de AlmaLinux no proporcionan el paquete MongoDB, por lo que tenemos que añadir un repositorio personalizado con el fin de obtener la última versión soportada de MongoDB. Para ello, añadiremos el repositorio de MongoDB del desarrollador, como se muestra a continuación. Utilce su editor favorito, por defecto viene "nano" y "vim", yo prefiero "joe", así pués, como por por defecto es "nano" usamos nano.
sudo nano /etc/yum.repos.d/mongodb.repo
Después de abrir este archivo copia y pega las siguientes líneas en él y guárdalo de nuevo en el archivo utilizando las teclas CTRL+X, Y y ENTER.
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
Ahora, reconstruye la caché del repositorio del sistema utilizando el comando dnf como se muestra a continuación.
sudo dnf update
Para comprobar si el repositorio está bien configurado o no, puedes utilizar el siguiente comando.
sudo dnf repolist
Deberías ver algo así.
Para comprobar si el repositorio Mongodb está habilitado o no, puedes utilizar el siguiente comando.
sudo dnf repolist enabled
Deberías ver algo así.
Paso 3. Instalar MongoDB
Después de añadir el repositorio requerido a nuestro sistema AlmaLinux, podemos seguir adelante e instalar el MongoDB utilizando el siguiente comando.
sudo dnf -y install mongodb-org
Una vez completada la instalación de MongoDB, comenzará a ejecutarse automáticamente en tu sistema. Puedes comprobarlo escribiendo el siguiente comando en tu terminal.
sudo systemctl status mongod
Deberías ver algo así.
Si no se inicia automáticamente, puedes iniciarlo utilizando el siguiente comando.
sudo systemctl start mongod
Para activar el inicio automático del servicio MongoDB en el arranque del sistema, ejecuta el siguiente comando.
sudo systemctl enable mongod
Paso 4. Probar la instalación de MongoDB
Ahora, la parte más emocionante es probar nuestra instalación de MongoDB. Para ello, crearemos un nuevo usuario administrativo para nuestra instancia de MongoDB.
En primer lugar, entra en el shell de MongoDB con el siguiente comando.
mongosh
Ahora entrarás con el prompt mongo >.
Para crear un nuevo usuario con privilegios para gestionar la base de datos, tendremos que conectarnos primero a la base de datos del administrador. Para ello, ejecuta el siguiente comando en el prompt.
use admin
Y a continuación, ejecuta el siguiente comando para crear un nuevo usuario con nombre howtoforge y contraseña howtoforge123, y que tenga el rol userAdminAnyDatabase. Puedes crear el nombre de usuario y la contraseña que quieras. No olvides establecer una contraseña segura para los usuarios.
db.createUser( { user: "linuxparty", pwd: "linuxparty123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Pulsa Intro para completar el proceso de creación de usuarios. Deberías ver algo así.
Para comprobar tu nuevo usuario, ejecuta el siguiente comando.
show users
Este comando debería devolver una lista de los usuarios que existen actualmente en el sistema, incluido el usuario recién creado, como se muestra a continuación.
Conclusión
En esta guía, hemos instalado MongoDB en un sistema AlmaLinux 9. Ahora puedes empezar a crear bases de datos y añadirles datos según tus necesidades. Si tienes alguna pregunta o sugerencia, no dudes en dejar un comentario abajo.
Algunos ejemplos:
El ejemplo proporcionado crea un nuevo usuario llamado "linuxparty" en la base de datos "admin" con el rol "userAdminAnyDatabase", lo que le otorga la capacidad de administrar usuarios en todas las bases de datos. A continuación, te mostraré varios ejemplos adicionales de comandos relacionados con la administración de usuarios en MongoDB, todos utilizando la base de datos "admin":
Listar Todos los Usuarios en la Base de Datos "admin":
use admin db.getUsers()
Este comando mostrará una lista de todos los usuarios en la base de datos "admin", incluido el recién creado "linuxparty".
Cambiar la Contraseña de un Usuario Existente:
use admin db.changeUserPassword("linuxparty", "nueva_contrasena")
Este comando cambiará la contraseña del usuario "linuxparty" a "nueva_contrasena".
Otorgar Roles Adicionales a un Usuario:
use admin db.grantRolesToUser("linuxparty", [ { role: "readWrite", db: "mi_base_de_datos" } ])
Este comando otorgará al usuario "linuxparty" el rol "readWrite" en la base de datos específica "mi_base_de_datos".
Revocar Roles de un Usuario:
use admin db.revokeRolesFromUser("linuxparty", [ { role: "readWrite", db: "mi_base_de_datos" } ])
Este comando revocará el rol "readWrite" del usuario "linuxparty" en la base de datos "mi_base_de_datos".
Eliminar un Usuario:
use admin db.dropUser("linuxparty")
Este comando eliminará el usuario "linuxparty" de la base de datos "admin".
Recuerda adaptar estos comandos según tus necesidades específicas. Además, ten en cuenta que estos son ejemplos básicos y que la sintaxis exacta puede variar según la versión de MongoDB que estés utilizando.
Algunos ejemplos:
En MongoDB, la terminología cambia un poco. En lugar de "tablas", tenemos "colecciones", y en lugar de "campos", tenemos "documentos". A continuación, te proporcionaré algunos ejemplos de comandos que puedes ejecutar desde la terminal de MongoDB para realizar varias operaciones:
Conexión a MongoDB:
Para conectarte a MongoDB desde la terminal, utiliza el siguiente comando:
mongo [o también mongosh]
Mostrar Todas las Bases de Datos:
show dbs
Este comando mostrará todas las bases de datos disponibles.
Usar una Base de Datos Específica:
use nombre_de_la_base_de_datos
Este comando te permite seleccionar una base de datos específica con la que deseas trabajar.
Mostrar Colecciones en una Base de Datos:
show collections
Una vez que hayas seleccionado una base de datos, puedes ver todas las colecciones dentro de esa base de datos.
Mostrar Documentos en una Colección:
db.nombre_de_la_coleccion.find()
Este comando mostrará todos los documentos en la colección especificada.
Mostrar Documentos con Condiciones:
db.nombre_de_la_coleccion.find({ campo: valor })
Puedes filtrar los documentos según ciertos criterios utilizando la sintaxis de consulta. Por ejemplo, si tienes una colección de usuarios y deseas mostrar solo aquellos con el campo "edad" igual a 25:
db.usuarios.find({ edad: 25 })
Mostrar Campos Específicos de Documentos:
db.nombre_de_la_coleccion.find({}, { campo1: 1, campo2: 1, _id: 0 })
Este comando mostrará solo los campos especificados de los documentos en la colección. En este ejemplo, se mostrarán los campos "campo1" y "campo2", excluyendo el campo "_id".
Estos son solo algunos ejemplos básicos de comandos que puedes usar en la terminal de MongoDB para administrar bases de datos, colecciones y documentos. Ten en cuenta que la sintaxis puede variar ligeramente según la versión de MongoDB que estés utilizando.
-
Bases de Datos
- Cómo hacer copias de seguridad y restaurar MySQL/MariaDB y PostgreSQL con las herramientas 'Automysqlbackup' y 'Autopostgresqlbackup'
- La última versión de MySQL es decepcionante, dicen algunos expertos en bases de datos
- Cómo instalar MongoDB en AlmaLinux 9 con ejemplos de uso
- Cómo instalar PostgreSQL 16 en distribuciones basadas en RHEL, AlmaLinux, RockyLinux y Fedora
- Cómo instalar PhpMyAdmin con Apache en sistemas RHEL, Alma Linux, Rocky Linux, Centos y Fedora
- Cómo hacer una copia de seguridad y restaurar una base de datos PostgreSQL en Linux
- Cómo instalar phpPgAdmin y PostgreSQL en CentOS, AlmaLinux, RHEL, RockyLinux y similares
- 20 comandos mysqladmin para la administración de bases de datos MYSQL/MariaDB
- Copiar y restaurar copias de seguridad de MySQL / MariaDB para la administración de bases de datos
- Crear Copias de Seguridad (Backups) de MariaDB o MySQL Automáticas con AutoMySQLBackup
- Grafana, software para análisis y supervisión
- Cómo configurar la replicación MariaDB (Maestro-Esclavo) en CentOS / RHEL y Debian
- Arrancar al inicio MySQL / MariaDB con Linux.
- Conocer que IPs están conectados a MySQL haciendo consultas a la base de datos.
- MariaDB, guía práctica para Administradores Linux