Definición
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
db.adminCommand( { listDatabases: 1 } )
El valor (p. ej. 1) no afecta la salida del comando.
Campos de comandos
El comando puede aceptar los siguientes campos opcionales:
Campo | Tipo | Descripción |
|---|---|---|
| Documento | Opcional. Un predicado de query que determina qué bases de datos se enumeran. Puede especificar una condición en cualquiera de los campos en la salida de
|
| booleano | Opcional. Una bandera para indicar si el comando debe devolver solo los nombres de las bases de datos o devolver tanto los nombres de las bases de datos como la información sobre el tamaño. El valor por defecto es |
| booleano | Opcional. Una bandera que determina qué bases de datos se devuelven según los privilegios del usuario cuando el control de acceso está activado.
For more information, see Behavior. |
| any | Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:
Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.). |
Comportamiento
Cuando se activa la autenticación, el comando listDatabases devuelve diferentes valores según los privilegios asignados al usuario que ejecuta el comando y la opción del comando authorizedDatabases:
Si
authorizedDatabasesno está especificado, yIf the user has
listDatabasesaction on the cluster resource,listDatabasescommand returns all databases.Si el usuario no tiene acción en
listDatabaseslistDatabasesel clúster, el comando devuelve solo las bases de datos para las que el usuario tiene privilegios (incluidas las bases de datos para las que el usuario tiene privilegios en colecciones específicas).
Si
authorizedDatabasestruees, el comando devuelve solo las bases de datos para las que el usuario tiene privilegios (incluidas las bases de datos para las que el usuario tiene privilegios en coleccioneslistDatabasesespecíficas).Si
authorizedDatabasesesfalse, yIf the user has
listDatabasesaction on the cluster,listDatabasescommand returns all databasesIf the user does not have
listDatabasesaction on the cluster,listDatabasescommand errors with insufficient permissions.
Desconexión del cliente
If the client that issued listDatabases disconnects before the operation completes, MongoDB marks listDatabases for termination using killOp.
Restricción del estado del set de réplicas
To run on a replica set member, listDatabases operations require the member to be in PRIMARY or SECONDARY state. If the member is in another state, such as STARTUP2, the operation errors.
Ejemplos
Listar los nombres y tamaños de las bases de datos
Ejecutar listDatabases contra la base de datos admin:
db.adminCommand( { listDatabases: 1 } )
El siguiente es un ejemplo de un resultado listDatabases:
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 83886080, "empty" : false }, { "name" : "local", "sizeOnDisk" : 83886080, "empty" : false }, { "name" : "test", "sizeOnDisk" : 83886080, "empty" : false } ], "totalSize" : 251658240, "totalSizeMb" : 251, "ok" : 1 }
Listar únicamente los nombres de las bases de datos
Ejecute listDatabases contra la base de datos admin. Especifique la opción nameOnly: true:
db.adminCommand( { listDatabases: 1, nameOnly: true} )
Ejemplo de salida:
{ "databases" : [ { "name" : "admin" }, { "name" : "local" }, { "name" : "test" } ], "ok" : 1 }
Listar las bases de datos que coincidan con el filtro
Ejecutar listDatabases contra la base de datos admin. Especificar la opción filter para listar solo las bases de datos que coincidan con los criterios de filtro especificados.
Por ejemplo, lo siguiente especifica un filtro tal que listDatabases solo devuelva información sobre bases de datos cuyo nombre coincida con el regular expressionespecificado:
db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } )
Clústeres fragmentados
Cuando se ejecuta contra una instancia de mongos, listDatabases:
añade un documento incrustado
shardsal documento de resumen de cada base de datos sinameOnly: false, yexcluye la base de datos
local.
Cada elemento en el documento incrustado shards consta de un campo cuya clave proporciona el nombre de una colección en esa partición, y cuyo valor representa el tamaño de la colección en bytes.
El campo sizeOnDisk representa el tamaño total de todas las colecciones e índices listados.
Por ejemplo:
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 16384, "empty" : false, "shards" : { "config" : 16384 } }, { "name" : "config", "sizeOnDisk" : 176128, "empty" : false, "shards" : { "clients" : 28672, "patients" : 8192, "config" : 139264 } }, { "name" : "test", "sizeOnDisk" : 12288, "empty" : false, "shards" : { "clients" : 12288 } } ], "totalSize" : 204800, "totalSizeMb" : 0, "ok" : 1 }
Salida
listDatabases.databasesTipo: arreglo
Arreglo de documentos, cada uno de los cuales contiene información sobre una sola base de datos.
listDatabases.databases.sizeOnDiskTipo: entero
Tamaño total de los archivos de la base de datos en disco, expresado en bytes.
listDatabases.databases.shardsTipo: documento
Cada elemento del documento
shardsconsta de un campo cuya clave proporciona el nombre de una colección en ese fragmento, y cuyo valor representa el tamaño de la colección en bytes.shardssolo aparece en la salida sinameOnly: false.Consultar Clústeres particionados para obtener más detalles.