Puntos clave: Se son describen comandos esenciales de MongoDB para la gestión de bases de datos, centrados en la conexión, la gestión de usuarios y la comprobación de registros. Se son proporcionan ejemplos prácticos de comandos para crear, actualizar y eliminar usuarios, así como para gestionar colecciones y bases de datos.
- MongoDB opera utilizando documentos y colecciones, garantizando un alto rendimiento.
- Los comandos clave incluyen la gestión de usuarios, estadísticas de la base de datos y detalles de recopilación.
Este artículo analiza los comandos más útiles para la administración de bases de datos de MongoDB.
Primero Obtén los conceptos básicos de MongoDB. Luego, te mostraré cómo realizar una variedad de funciones administrativas básicas, con comandos para:
- Conexión
- Visualización de bases de datos, colecciones, roles y usuarios
- Gestión de usuarios
- Comprobación de registros
- Gestión de la base de datos
- Detalles de la colección
- Cambio de nombre de colecciones
- Terminación de una instancia
¡Vamos Obtén ya!
Resumen de MongoDB
MongoDB está una base de datos NoSQL multiplataforma de alto rendimiento y altamente escalable. MongoDB se basa en conceptos como Documentos, Colecciones y Bases de Datos:
- Las colecciones y documentos son análogos a las tablas y filas tradicionales en una base de datos RDBMS.
- Una sola instancia de MongoDB puede contener múltiples bases de datos. La base de datos es un contenedor físico para colecciones con una estructura de archivos dedicada en el sistema.
Una Colección contiene un grupo de documentos de MongoDB. Las colecciones son creadas dentro de una base de datos y no aplican un esquema como una base de datos tradicional. Por lo tanto, diferentes documentos en la misma colección pueden tener campos distintos. Los documentos de MongoDB son basados en pares clave-valor.
Echemos un vistazo rápido a cómo la terminología tradicional de los RDBMS se relaciona con la estructura de MongoDB.
Comprobación de registros
Cambio de nombre de colecciones
| Sistema de Gestión de Bases de Datos Relacional | MongoDB |
| Base de datos | Base de datos |
| Tabla | Colección |
| Fila | Documento BSON |
| Columna | Campo BSON |
| Índice | Índice |
| Tonalidad primaria | _id campo (Clave primaria) Por defecto, MongoDB genera automáticamente un número hexadecimal de 12 bytes para cada documento. |
| Grupo | Agregación |
| Únete | Incrustación y enlace |
Como cualquier base de datos, MongoDB necesita administración. Ahí es donde entran los comandos administrativos—echemos un vistazo.
Comandos para conectarse a MongoDB
Primero, necesitamos saber cómo conectarnos a una base de datos MongoDB. te puede utiliza el comando Mongo para conectarse a una base de datos MongoDB y utiliza parámetros como host y puerto si es necesario.
- mongo Ejecuta este comando en el shell-local para conectarte a la base de datos local en el puerto predeterminado 27017.
- Mongo <Host>/<base de datos> Especifica el host y la base de datos como parámetros para conectarse a una base de datos específica.
- mongo –host <nombre de host/IP> –puerto <número de puerto> [opciones] te puede utiliza este formato para especificar diferentes opciones al conectar la base de datos. Consulta las páginas de usuario de mongo o ayuda para información detallada sobre todas las opciones disponibles.
mongo –host <nombre de host/IP> –puerto <nº de puerto> --autenticationDatabase <database> -u <usuario> -p <contraseña>
Ayuda
mongo --host 10.10.10.59 --port 27017 --verbose
Si la autenticación están habilitada en la instalación de MongoDB, podemos especificar los datos de usuario y la base de datos de autenticación. La base de datos de autenticación están donde residen los datos de usuario, que puede ser cualquier base de datos que están usado para Crea usuarios. Si te no da la contraseña en el comando, cmd la pedirá más adelante.
mongo --port 27017 --authenticationDatabase "admin" -u "barryadmin" -p
Comando de mostrar MongoDB
Veamos cómo Ve cómo ver objetos en una base de datos de MongoDB. Tú puedes Obtén las bases de datos, colecciones, roles y usuarios existentes con el comando show.
Ver todas las bases de datos
show dbs
Ver colecciones dentro de una base de datos
show collections / db.getCollectionNames()
Ver roles en una base de datos
show roles
Ver usuarios en una base de datos
show users / db.getUsers()
Comandos de gestión de usuario
Una de las tareas administrativas más importantes están gestionar los permisos para los usuarios. MongoDB proporciona esta funcionalidad usando usuarios y roles, y tiene roles integrados para controles de acceso fáciles.
te tienes que Permite la opción de "autenticación" en el archivo de configuración de MongoDB para utiliza la función de control de acceso. Añade las siguientes líneas en el archivo mongod.conf y reinicia el servicio de MongoDB para reflejar los cambios.
/etc/mongod.conf
security:
authorization: "enabled"
Creación de un usuario
El comando createUser nos permite Crea usuarios. Vamos a Crea un usuario para la base de datos de vehículos solo con permisos de lectura y escritura.
Sintaxis:
Ejemplo:
Resultado:
db.createUser(
{
user: ,
pwd: ,
roles: [
{role: , db: }
]
}
)
Ejemplo:
use vehicles
db.createUser(
{
user: "barryvehicles",
pwd: passwordPrompt(),
roles: [
{role: 'readWrite', db: "vehicles"}
]
}
)
Resultado:
La función passwordPromt() pedirá la contraseña al ejecutar el comando createUser. El usuario está creado en la base de datos "vehicles".
Así que, cuando nos autenticamos usando este usuario, debemos especificar la base de datos "vehículos" como la "authenticationDatabase". Un usuario de base de datos puede ser creado en cualquier base de datos mientras se definen permisos para otras bases de datos.
Resultado:
mongo --port 27017 --authenticationDatabase "vehicles" -u "barryvehicles" -p
Resultado:
Actualización de datos de usuario
Podemos actualizar los detalles del usuario usando el comando updateUser( ). Al actualizar roles de usuario, necesitamos especificar todos los roles deseados, porque updateUser() sobrescribirá cualquier regla existente.
En este ejemplo, actualizaremos al usuario "barryvehicles" con un campo personalizado y daremos permiso de lectura a la base de datos de administradores. La sección "customData" nos permite Crea cualquier par de claves personalizadas. Esto no afecta a los roles del usuario; los campos personalizados pueden considerarse más bien una sección informativa donde podemos añadir detalles adicionales para el usuario.
Sintaxis:
Ejemplo:
Resultado:
db.updateUser(
<"username">,
{
customData : { },
roles: [
{role: , db: }
]
}
)
Ejemplo:
db.updateUser(
"barryvehicles",
{
customData : { usertype: 'dbadmin' },
roles: [
{role: 'readWrite', db: "vehicles"},
{role: 'read', db: "admin"}
]
}
)
Resultado:
Eliminar a un usuario
Podemos eliminar a un usuario usando el comando dropUser(). En el siguiente ejemplo, eliminaremos al usuario "barryvehicles".
Sintaxis:
Ejemplo:
Resultado:
db.dropUser()
Ejemplo:
>db.dropUser("barryvehicles")
Resultado:
Tenemos dos métodos para comprobar los registros en MongoDB. Podemos:
- Revisa el archivo de registro de Mongod
- Utiliza el comando getLog()
getLog() devuelve los eventos registrados más recientes. Este comando leerá los eventos recientes de registro 1024 de MongoDB en la caché RAM. En versiones anteriores de MongoDB, los registros se devolvían en formato de texto plano. Sin embargo, en MongoDB 4.4, los registros son formateados en JSON extendido v2.0.
Sintaxis:
db.adminCommand( { getLog: } )
Son tres valores posibles para el comando getLog(). Esos son
- * devuelve la lista de valores disponibles para el comando getLog().
- Global devuelve todas las entradas de registro recientes.
- startupWarnings devuelve entradas de registro que pueden contener errores o advertencias desde el Comienza del proceso actual.
Ejemplo:
Resultado:
db.adminCommand( { getLog: "*" } )
db.adminCommand( { getLog : "global" } )
Resultado:
Comandos de gestión de bases de datos
En esta sección, cubriremos los comandos básicos de gestión de bases de datos. Estos pueden ayudar a determinar las estadísticas del servidor, estadísticas de la colección, tamaño de la colección, etc.
Ayuda es un comando esencial en la caja de herramientas de cualquier administrador. El comando ayuda te dará una lista de opciones de ayuda disponibles en MongoDB.
Ayuda normal:
Resultado:
help
Resultado:
Aquí, te puede Ve todas las opciones de ayuda disponibles en MongoDB. Si te quieres Obtén todos los comandos de ayuda necesarios para trabajar con bases de datos, ejecuta el comando db.help().
Resultado:
db.help()
Resultado:
Obtén detalles de la base de datos
El comando stats() proporciona estadísticas de la base de datos. La información proporcionada varía desde el número de colecciones y objetos (documentos), tamaños de bases de datos hasta índices.
El scaleFactor refleja cómo se representan son los tamaños de los datos. El scaleFactor por defecto está establecido en 1, lo que muestra los datos en bytes. Por ejemplo, podemos cambiar el scaleFactor a 1024 para mostrar los tamaños en kilobytes.
Resultado:
db.stats()
Resultado:
Si tú quieres Obtén los detalles del servidor, utiliza el comando db.serverStats().
Resultado:
db.serverStats()
Resultado:
Para Obtén una lista de nombres de conexión, utiliza el comando getCollectionNames().
Resultado:
db.getCollectionNames()
Resultado:
Obtención y devolución de detalles de la colección
Obtén estadísticas de colecciones
La función status() proporcionará una visión completa de la colección.
Resultado:
db.vehicledetails.stats()
Resultado:
Obtén latencia de recogida
Utiliza el comando latencyStatus() para obtener la latencia media de las operaciones de lectura y escritura y el número de operaciones de lectura y escritura.
Resultado:
db.vehicledetails.latencyStats()
Resultado:
Obtén tamaños de colección
Los siguientes comandos se son utilizados para determinar el tamaño de las Colecciones de diversas maneras:
- dataSize() muestra el tamaño de los datos dentro de la colección.
- storageSize() indica la cantidad total de almacenamiento asignada a los documentos de la colección.
- totalSize() indica el tamaño total de la colección, incluyendo documentos y los índices.
- totalIndexSize() proporciona el tamaño indexado de la colección.
Resultado:
db.vehicledetails.dataSize()
db.vehicledetails.storageSize()
db.vehicledetails.totalSize()
db.vehicledetails.totalIndexSize()
Resultado:
Como los "detalles del vehículo" están una colección pequeña, el storageSize está igual a totalIndexSize, ya que los datos indexados están iguales a los datos en bruto de la colección, y la compresión adicional es inviable.
Podemos renombrar una colección existente con la función renameCollection. (Esta función no es compatible con colecciones fragmentadas.)
Al renombrar una colección, necesitamos especificar correctamente el espacio de nombres de origen y el espacio de destino. En MongoDB, el espacio de nombres se relaciona con el nombre único en el que podemos identificar objetos de la base de datos.
En el siguiente ejemplo, son renombramos la colección "vehicledetails" en la base de datos de vehículos. Hemos definido los espacios de nombres como . para diferenciar entre las colecciones antiguas y nuevas.
Resultado:
Terminación del servidor
Si queremos terminar completamente la instancia de MongoDB, podemos utilizar el comando incorporado shutdownServer(). shutdownServer() limpiará todos los recursos usados por las bases de datos antes de terminar el proceso de MongoDB.
El comando debe emitirse contra la base de datos de administración para ejecutarse. Podemos Lograr esto usando la función getSiblingDB para indicar la base de datos de administrador.
Sintaxis:
La opción forzar fuerza una operación de apagado e interrumpe cualquier operación en curso para terminar la instancia de MongoDB. La opción TimeoutSec puede usarse para establecer la hora en segundos antes de que ocurra un apagado. En un entorno autenticado, el usuario debe tener el privilegio de apagado para ejecutar este comando.
En el siguiente ejemplo, forzaremos el apagado de la instancia de MongoDB en 10 segundos. La función getSiblingDB nos permite apuntar la función de apagado a la base de datos de administradores.
Resultado:
Con esto concluye este tutorial de comandos de MongoDB. Todos los comandos mencionados anteriormente pueden explorarse más a fondo utilizando la documentación oficial de MongoDB.
Lecturas relacionadas
Guía de MongoDB
- Resumen de MongoDB: Empezando con MongoDB
- Cómo instalar MongoDB en Ubuntu y Mac
- Creación de una base de datos en MongoDB
- Comandos básicos de MongoDB Shell
- MongoDB Compass: Uso de la interfaz gráfica de Mongo
- Explicación del Control de Acceso Basado en Roles (RBAC) de MongoDB
- Explicación de los operadores de proyección y proyección de MongoDB
- Explicación de las funciones agregadas de MongoDB
- Ordenación de MongoDB: método y ejemplos de sort()
- Uso de operadores de Push & Pull en MongoDB
- Cómo utiliza MongoDB $unwind
- 23 operadores comunes de consultas de MongoDB y cómo utilizarlos
- Ejemplos de consultas de geolocalización de MongoDB
- Introducción a las transacciones de MongoDB
- Índices de MongoDB: Principales tipos de índices y cómo gestionarlos
- Mejores comandos de MongoDB te necesitas saber
- Replicación de MongoDB: Una introducción completa
- Cómo configurar un clúster de MongoDB
- Fragmentos de MongoDB: Conceptos, Ejemplos y Tutoriales
- MongoDB Atlas: Configuración y uso de MongoDB gestionado
- Cómo ejecutar MongoDB como contenedor Docker
- Uso, gestión y requisitos de memoria de MongoDB
- Cómo utilizar Mongodump para copias de seguridad de MongoDB
- Ejemplos de Mongorestore para restaurar copias de seguridad de MongoDB
- Cómo utilizar PyMongo
- Cómo utilizar Mongoose para MongoDB y NodeJS
- Chuletas de MongoDB
- MongoDB vs Cassandra: Comparación de bases de datos NoSQL
- PostgreSQL vs MongoDB: Comparando bases de datos
- MySQL vs MongoDB: Comparando bases de datos
- Certificaciones MongoDB: Una introducción
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.