listar Coleções
Nesta página
Definição
listCollections
Recupera informações, incluindo os nomes e opções de criação, para as collections evisualizações do em um banco de dados de dados.
O comando
listCollections
retorna um documento que contém informações que você pode utilizar para criar um cursor na collection.mongosh
fornece os métodos auxiliaresdb.getCollectionInfos()
edb.getCollectionNames()
.
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 é suportado em todos os clusters do MongoDB Atlas . Para obter informações sobre o suporte do Atlas para 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
O comando tem a seguinte sintaxe:
db.runCommand( { listCollections: 1, filter: <document>, nameOnly: <boolean>, authorizedCollections: <boolean>, comment: <any> } )
Campos de comando
O comando pode assumir os seguintes campos opcionais:
Campo | Tipo | Descrição |
---|---|---|
filter | documento | Opcional. Um predicado de consulta para filtrar a lista de coleções. Você pode especificar um predicado de query em qualquer um dos campos retornados por |
nameOnly | booleano | Opcional. Um sinalizador para indicar se o comando deve retornar apenas o nome e o tipo ( O valor padrão é Quando |
authorizedCollections | booleano | Opcional. Um sinalizador, quando configurado para Quando as opções O valor padrão é Para um usuário que tenha a ação Quando usado sem |
comment | 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). Qualquer comentário definido em um comando |
Comportamento
Filtro
Use um filtro para limitar os resultados de listCollections
. É possível especificar um filter
em qualquer um dos campos retornados no conjunto de resultados listCollections
.
Bloqueios
listCollections
travar comportamento:
Antes do MongoDB 5.0,
listCollections
obtém um bloqueio compartilhado de intenção em cada collection no banco de dados quandolistCollections
mantém um bloqueio compartilhado de intenção no banco de dados.A partir do MongoDB 5.0,
listCollections
não utiliza um bloqueio compartilhado de intenção em uma collection ou banco de dados.listCollections
não é bloqueado por operações que mantêm um bloqueio de escrita exclusivo em uma collection.
Para saber mais sobre travas, consulte Perguntas frequentes: Concorrência
Desconexão do cliente
A partir do MongoDB 4.2, se o cliente que emitiu listCollections
se desconectar antes da conclusão da operação, o MongoDB marcará listCollections
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 delistCollections
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.
Acesso necessário
O comando listCollections
requer a ação listCollections
quando o controle de acesso é aplicado. Os usuários devem ter privilégios que concedam a ação listCollections
no banco de dados para executar listCollections
.
Por exemplo, o comando a seguir concede o privilégio de executar db.getCollectionInfos()
no banco de dados test
:
{ resource: { db: "test", collection: "" }, actions: [ "listCollections" ] }
O papel integrado read
fornece o privilégio para executar listCollections
para um banco de dados específico.
Usuários sem o privilégio de read
exigido podem executar listCollections
quando authorizedCollections
e nameOnly
estão configurados para true
. Neste caso, o comando retorna os nomes e tipos das collections onde o usuário tem privilégios.
Por exemplo, considere um usuário com um role que concede o seguinte privilégio find
:
{ resource: { db: "sales", collection: "currentQuarter" }, actions: [ "find" ] }
O usuário pode executar listCollections
se authorizedCollections
e nameOnly
estiverem configurados para true
.
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
A operação retorna o nome e o tipo da collection currentQuarter
.
No entanto, as seguintes operações retornam um erro se o usuário não tiver a autorização de acesso necessária:
db.runCommand( { listCollections: 1.0, authorizedCollections: true } ) db.runCommand( { listCollections: 1.0, nameOnly: true } )
show collections
O método mongosh
show collections
é semelhante a:
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
Para usuários com o acesso exigido, o
show collections
lista as collections fora do sistema para o banco de dados.Para usuários sem o acesso exigido, o
show collections
lista somente as collections para as quais os usuários têm privilégios.
Saída
listCollections.cursor
Um documento que contém informações com as quais criar um cursor para documentos que contêm nomes de collection e opções. As informações do cursor incluem o ID do cursor, o namespace completo para o comando, bem como o primeiro lote de resultados. Cada documento no resultado do lote contém os seguintes campos:
CampoTipoDescriçãonameStringNome da collection.typeStringTipo de armazenamento de dados. Retornacollection
para coleções,view
para visualizações etimeseries
para coleção de séries temporais.opçõesDocumentoOpções de collection.
Essas opções correspondem diretamente às opções disponíveis no
db.createCollection()
. Para as descrições sobre as opções, consultedb.createCollection()
.informaçõesDocumentoLista os seguintes campos relacionados à collection:
- Somente leitura
boolean
. Setrue
o armazenamento de dados é somente leitura.- uuid
- UUID. Uma vez estabelecido, o UUID da collection não muda. O UUID da collection permanece o mesmo entre membros do conjunto de réplicas e de shards em um cluster fragmentado.
idIndexDocumentoFornece informações sobre o índice_id
para a collection.
Exemplo
Listar todas as collections
O banco de dados do music
contém três collections, motorhead
, taylorSwift
e ramones
.
Para listar as coleções no banco de dados, você pode utilizar o comando integrado mongosh
, mostrar coleções.
show collections
A saída é:
motorhead ramones taylorSwift
Para obter uma lista semelhante com o comando de collections do listCollections
, utilize a opção nameOnly
.
db.runCommand( { listCollections: 1.0, nameOnly: true } )
A saída é:
{ cursor: { id: Long("0"), ns: 'music.$cmd.listCollections', firstBatch: [ { name: 'motorhead', type: 'collection' }, { name: 'taylorSwift', type: 'collection' }, { name: 'ramones', type: 'collection' } ] }, ok: 1 }
Para obter informações mais detalhadas, remova a opção nameOnly
.
db.runCommand( { listCollections: 1.0 } )
A saída é:
{ cursor: { id: Long("0"), ns: 'music.$cmd.listCollections', firstBatch: [ { name: 'motorhead', type: 'collection', options: {}, info: { readOnly: false, uuid: new UUID("09ef1858-2831-47d2-a3a7-9a29a9cfeb94") }, idIndex: { v: 2, key: { _id: 1 }, name: '_id_' } }, { name: 'taylorSwift', type: 'collection', options: {}, info: { readOnly: false, uuid: new UUID("6c46c8b9-4999-4213-bcef-9a36b0cff228") }, idIndex: { v: 2, key: { _id: 1 }, name: '_id_' } }, { name: 'ramones', type: 'collection', options: {}, info: { readOnly: false, uuid: new UUID("7e1925ba-f2f9-4e42-90e4-8cafd434a6c4") }, idIndex: { v: 2, key: { _id: 1 }, name: '_id_' } } ] }, ok: 1 }
Saiba mais
Para opções de collection:
Para obter as informações da collection: