listDatabases
Definição
listDatabases
O comando
listDatabases
fornece uma lista de todos os bancos de dados existentes junto com estatísticas básicas sobre eles. OlistDatabases
deve ser executado no banco de dadosadmin
, como no exemplo a seguir:
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
|
| 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á habilitada, o comando listDatabases
retorna valores diferentes com base nos privilégios atribuídos ao usuário que executa o comando e na opção de comando authorizedDatabases
:
Se
authorizedDatabases
não for especificado, eSe o usuário tiver a ação
listDatabases
no recurso de cluster, o comandolistDatabases
retornará todos os bancos de dados.Se o usuário não tiver a ação
listDatabases
no cluster, o comandolistDatabases
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 coleções específicas).
Se o
authorizedDatabases
fortrue
, o comandolistDatabases
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 coleções específicas).Se
authorizedDatabases
forfalse
, eSe o usuário tiver a ação
listDatabases
no cluster, o comandolistDatabases
retornará todos os bancos de dados.Se o usuário não tiver a ação
listDatabases
no cluster, o comandolistDatabases
retornará erros com permissões insuficientes.
Desconexão do cliente
A partir do MongoDB 4.2, se o cliente que emitiu listDatabases
se desconectar antes da conclusão da operação, o MongoDB marcará listDatabases
para encerramento usando killOp
.
Restrição de estado do membro do conjunto de réplica
Para executar em um membro do conjunto de réplicas, as operações delistDatabases
exigem que o membro esteja no estado PRIMARY
ou SECONDARY
. Se o membro estiver em outro estado, como STARTUP2
, ocorre um erro na operação.
Exemplos
Listar nomes e tamanhos do banco de dados
Execute listDatabases
no banco de dados 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 dados admin
. Especifique a opção nameOnly: true
:
db.adminCommand( { listDatabases: 1, nameOnly: true} )
Veja a seguir um exemplo de um resultado listDatabases
quando executado com a opção nameOnly: true
:
{ "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 especificados.
Por exemplo, o seguinte especifica um filtro que listDatabases
retorna apenas informações em bancos de dados cujo nome corresponde à regular expression
especificada:
db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } )
Clusters fragmentados
Quando executado em uma instância mongos
, listDatabases
:
adiciona um documento incorporado de
shards
ao documento de resumo de cada banco de dados senameOnly: false
eexclui 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.databases
Tipo: Array
Array de documentos, cada um contendo informações em um único banco de dados.
listDatabases.databases.sizeOnDisk
Tipo: inteiro
Tamanho total dos arquivos do banco de dados no disco, expressos em bytes.
listDatabases.databases.shards
Tipo: Documento
Cada elemento no documento
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.shards
só aparece na saída senameOnly: false
.Consulte clusters fragmentados para mais detalhes.