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. Indica se o comando retorna apenas os nomes do banco de dados ou retorna os nomes do banco de dados e as informações de tamanho. O 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, listDatabases retorna resultados diferentes com base nos privilégios do usuário e na opção authorizedDatabases:
Se
authorizedDatabasesnão for especificado, eSe o usuário tiver a
listDatabasesação no recurso de cluster,listDatabaseso comando retornará todos os bancos de dados.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
Se o cliente que emitiu listDatabases se desconectar antes da conclusão da operação, o MongoDB marcará para listDatabases encerramento killOp usando.
Restrição de estado do membro do conjunto de réplica
Para executar em um membro do conjunto de réplicas, listDatabases as operações do exigem que o membro esteja no estado ou.PRIMARY Se o membro estiver em SECONDARY STARTUP2 outro estado, como, os erros de operação.
Exemplos
Listar nomes e tamanhos do banco de dados
Execute o listDatabases no banco de banco de dados do admin :
db.adminCommand( { listDatabases: 1 } )
Saída de exemplo:
{ "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 dados admin. Especifique a opção filter para listar somente bancos de dados que correspondam aos critérios de filtro.
Por exemplo, o filtro a seguir retorna apenas 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
shardsao documento de resumo de cada banco de dados, senameOnly: false.exclui o banco de dados
local.
Cada campo no documento incorporado shards usa o nome do shard como chave e o tamanho do banco de dados em bytes como valor.
O campo sizeOnDisk representa o tamanho total de todas as coleções e índices listados no banco de dados.
Por exemplo:
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 16384, "empty" : false, "shards" : { "config" : 16384 } }, { "name" : "config", "sizeOnDisk" : 176128, "empty" : false, "shards" : { "shard01" : 28672, "shard02" : 8192, "config" : 139264 } }, { "name" : "test", "sizeOnDisk" : 12288, "empty" : false, "shards" : { "shard01" : 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 campo no documento
shardsusa o nome do shard como chave e o tamanho do banco de dados em bytes como valor.shardssó aparece na saída senameOnly: false.Consulte clusters fragmentados para mais detalhes.