Definição
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
db.adminCommand( { listDatabases: 1 } )
O valor (por exemplo: 1) não afeta a saída do comando.
Campos de comando
O comando pode assumir os seguintes campos opcionais:
Campo | Tipo | Descrição |
|---|---|---|
| documento | Opcional. Um predicado de query que determina quais bancos de dados são listados. Você pode especificar uma condição em qualquer um dos campos na saída de
|
| booleano | Opcional. Um sinalizador para indicar se o comando deve retornar apenas os nomes do banco de dados ou retornar os nomes do banco de dados e as informações de tamanho. O valor padrão é |
| booleano | Opcional. Um sinalizador que determina quais bancos de dados serão retornados com base nos privilégios do usuário quando o controle de acesso estiver habilitado.
Para mais informações, consulte Comportamento. |
| any | Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
Comportamento
Quando a autenticação está ativada, o listDatabases comando retorna valores diferentes com base nos privilégios atribuídos ao usuário que executa o comando e na authorizedDatabases opção comando:
Se
authorizedDatabasesnão for especificado, eIf the user has
listDatabasesaction on the cluster resource,listDatabasescommand returns all databases.Se o usuário não tiver a ação
listDatabaseslistDatabasesno cluster, o comando retornará apenas os bancos de dados para os quais o usuário tem privilégios (incluindo bancos de dados para os quais o usuário tem privilégios em collections específicas).
Se
authorizedDatabasesotruefor, o comando retornará somente os bancos de dados para os quais o usuário tem privilégios (incluindo bancos de dados para os quais o usuário tem privilégios em collectionslistDatabasesespecíficas).Se
authorizedDatabasesforfalse, eSe o usuário tiver a ação
listDatabaseslistDatabasesno cluster, o comando retornará todos os bancos de dadosSe o usuário não tiver a ação
listDatabaseslistDatabasesno cluster, os erros de comando com permissões insuficientes.
Desconexão do cliente
If the client that issued listDatabases disconnects before the operation completes, MongoDB marks listDatabases for termination using killOp.
Restrição de estado do membro do conjunto de réplica
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.
Exemplos
Listar nomes e tamanhos do banco de dados
Execute o listDatabases no banco de banco de dados do admin :
db.adminCommand( { listDatabases: 1 } )
Veja a seguir um exemplo de um 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 apenas nomes de bancos de dados
Execute listDatabases no banco de banco de dados admin. Especifique a opção nameOnly: true:
db.adminCommand( { listDatabases: 1, nameOnly: true} )
Saída de exemplo:
{ "databases" : [ { "name" : "admin" }, { "name" : "local" }, { "name" : "test" } ], "ok" : 1 }
Listar bancos de dados que correspondem ao filtro
Execute listDatabases no banco de banco de dados admin. Especifique a opção filter para listar somente bancos de dados que correspondam aos critérios de filtro especificados.
Por exemplo, o seguinte especifica um filtro tal que listDatabases retorna apenas informações em bancos de dados cujo nome corresponde ao especificado regular expression:
db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } )
Clusters fragmentados
Quando executado em uma mongos listDatabasesinstância,:
adiciona um documento incorporado de
shardsao documento de resumo de cada banco de dados senameOnly: falseeexclui o banco de dados
local.
Cada elemento no documento incorporado do shards consiste em um campo cuja chave fornece o nome de uma collection nesse shard e cujo valor representa o tamanho da collection em bytes.
O campo sizeOnDisk representa o tamanho total de todas as collections e índices listados.
Por exemplo:
{ "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 }
Saída
listDatabases.databasesTipo: Array
Array de documentos, cada um contendo informações em um único banco de dados.
listDatabases.databases.sizeOnDiskTipo: inteiro
Tamanho total dos arquivos do banco de dados no disco, expressos em bytes.
listDatabases.databases.shardsTipo: Documento
Cada elemento no documento
shardsconsiste em um campo cuja chave fornece o nome de uma collection nesse shard e cujo valor representa o tamanho da collection em bytes.shardssó aparece na saída senameOnly: false.Consulte clusters fragmentados para mais detalhes.