Comandos Esenciales de Administración de MongoDB para Principiantes

Domina los comandos administrativos esenciales para MongoDB usando el shell `mongosh`. Esta guía cubre tareas fundamentales para principiantes, incluyendo el cambio de bases de datos, la creación/eliminación de colecciones, la gestión de usuarios con roles y comprobaciones cruciales de salud del sistema como `serverStatus`. Aprende los comandos básicos necesarios para gestionar de forma segura tu entorno NoSQL.

38 vistas

Comandos Esenciales de Administración de MongoDB para Principiantes

Mongodb, una base de datos documental NoSQL líder, es conocida por su flexibilidad y escalabilidad. Si bien los desarrolladores a menudo se centran en las operaciones CRUD (Crear, Leer, Actualizar, Eliminar), la gestión eficaz del entorno de la base de datos depende en gran medida de la comprensión de los comandos administrativos esenciales. Esta guía presenta a los principiantes los comandos principales necesarios para la gestión de bases de datos, la administración de usuarios y las comprobaciones del estado del sistema, asegurando que su instancia de MongoDB funcione de manera fluida y segura.

Dominar estas tareas administrativas es crucial para cualquiera que se adentre más allá del simple desarrollo local hacia entornos de producción. Exploraremos cómo interactuar con el shell mongosh para administrar bases de datos, colecciones, usuarios y realizar diagnósticos de sistema necesarios.


Accediendo al Shell de MongoDB (mongosh)

La interfaz principal para ejecutar comandos administrativos es el Shell de MongoDB, al que se accede normalmente utilizando el comando mongosh. Aquí es donde ejecuta comandos basados en JavaScript directamente contra su instancia de MongoDB.

Para conectarse a una instancia local de MongoDB que se ejecuta en el puerto predeterminado (27017), simplemente escriba:

mongosh

Una vez conectado, verá el prompt >, que indica que está listo para emitir comandos.

Comandos de Gestión de Bases de Datos

La gestión de la base de datos que está utilizando actualmente y la visualización de las bases de datos existentes son tareas administrativas fundamentales.

Listar Todas las Bases de Datos

Para ver una lista de todas las bases de datos actualmente presentes en el servidor MongoDB, use el comando show dbs:

> show dbs
admin    40.00 KiB
config   72.00 KiB
local    72.00 KiB
myAppDB 100.00 KiB

Cambiar de Base de Datos

Antes de poder crear una base de datos o colección, debe cambiar el contexto a la base de datos deseada utilizando el comando use. Si la base de datos no existe, MongoDB la creará implícitamente en la primera inserción de datos.

> use myAppDB
switched to db myAppDB

Ver Base de Datos Actual

Para confirmar en qué contexto de base de datos está operando actualmente, use db:

> db
myAppDB

Eliminar una Base de Datos

Advertencia: Esta acción elimina permanentemente todos los datos dentro de la base de datos especificada. Úselo con extrema precaución, especialmente en entornos de producción.

Para eliminar la base de datos actual (la devuelta por db):

> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }

Comandos de Gestión de Colecciones

Las colecciones son análogas a las tablas en bases de datos relacionales. Su gestión es sencilla utilizando el atajo del objeto db.

Listar Colecciones

Mientras usa una base de datos específica, liste todas las colecciones dentro de ella usando show collections (o el equivalente db.getCollectionNames() en versiones anteriores):

> show collections
users
products
orders

Crear Colecciones

Las colecciones a menudo se crean automáticamente en la primera inserción. Sin embargo, puede crear explícitamente una usando db.createCollection() para tener control sobre las reglas de validación o el capping.

// Creando una colección estándar llamada 'logs'
> db.createCollection("logs")
{ "ok" : 1 }

Eliminar una Colección

Para eliminar una colección por completo:

> db.logs.drop()
true

Administración de Usuarios y Seguridad

Para cualquier base de datos destinada a uso en producción, asegurar el acceso mediante autenticación de usuarios es obligatorio. La gestión de usuarios se realiza típicamente dentro de la base de datos admin o la base de datos específica donde el usuario debe tener permisos.

Cambiar a la Base de Datos Admin para la Creación de Usuarios

Es una práctica estándar crear usuarios administrativos en la base de datos admin, aunque los usuarios basados en roles se pueden crear en bases de datos de aplicaciones.

> use admin
switched to db admin

Crear un Usuario

Use db.createUser() para agregar un nuevo usuario. Esto requiere especificar el nombre de usuario, una contraseña segura y los roles asignados.

> db.createUser(
...   {
...     user: "appAdmin",
...     pwd: passwordPrompt(), // Solicita la contraseña de forma segura
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
...   }
... )
  • Consejo: Se recomienda encarecidamente usar passwordPrompt() en lugar de incrustar contraseñas en texto plano en scripts.

Listar Usuarios

Para ver los usuarios existentes dentro de la base de datos actual:

> show users

Monitoreo y Diagnóstico del Sistema

Los administradores necesitan formas de verificar el estado, la condición y la configuración de la instancia de MongoDB en ejecución.

Comprobar el Estado del Servidor

El comando serverStatus devuelve un documento completo que detalla las estadísticas sobre el funcionamiento del servidor, incluido el uso de memoria, las conexiones y las operaciones.

> db.serverStatus()
// La salida será un gran documento JSON que contiene métricas.

Ver Conexiones Actuales

Para ver las conexiones de clientes activas, puede consultar el comando currentOp o buscar dentro de la salida de serverStatus en la sección de conexiones. Una forma directa de ver las operaciones actuales es:

> db.currentOp()

Comprobar la Configuración

Para ver la configuración aplicada actualmente a la instancia:

> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })

Resumen y Próximos Pasos

Estos comandos esenciales —que cubren el cambio de base de datos, la gestión de colecciones, la creación de usuarios y el monitoreo básico— forman la base de una administración eficaz de MongoDB. Si bien mongosh proporciona retroalimentación inmediata, el monitoreo avanzado a menudo requiere la integración con MongoDB Compass o el uso de la interfaz de MongoDB Atlas para diagnósticos visuales.

Mejor Práctica: Conéctese siempre con credenciales y restrinja los roles de usuario a los permisos mínimos necesarios (Principio de Mínimo Privilegio).

Comience a practicar estos comandos en un entorno que no sea de producción para ganar confianza antes de administrar almacenes de datos críticos.