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 - listCollectionsretorna um documento que contém uma lista não classificada de todas as coleções e visualizações no banco de banco de dados. Você pode usar o documento retornado para criar um cursor na coleção.- mongoshfornece os métodos assistente- db.getCollectionInfos()e- db.getCollectionNames(), bem como o comando show collections.
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
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 | 
|---|---|---|
| 
 | 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  | 
| 
 | booleano | Opcional. Um sinalizador para indicar se o comando retorna apenas o nome e tipo ( O valor padrão é  Quando  | 
| 
 | 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  | 
| 
 | 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. Você pode especificar um filter em qualquer um dos campos retornados no listCollections conjunto de resultados .
Bloqueios
listCollections travar comportamento:
- Antes do MongoDB 5.0, - listCollectionsobtém um bloqueio compartilhado de intenção em cada collection no banco de dados quando- listCollectionsmantém um bloqueio compartilhado de intenção no banco de dados.
- A partir do MongoDB 5.0, - listCollectionsnão utiliza um bloqueio compartilhado de intenção em uma collection ou banco de dados.- listCollectionsnã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
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 listCollections comando e seu wrapper db.getCollectionInfos() exigem a ação quando listCollections o controle de acesso é imposto. Os usuários devem ter privilégios que concedam a listCollections ação no banco de dados para listCollections executar.
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    } ) 
Saída
- listCollections.cursor
- Um documento que contém as informações necessárias para 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 e o primeiro lote de resultados. Cada documento no resultado do lote contém os seguintes campos: CampoTipoDescrição- name - String - Nome da collection. - type - String - Tipo de armazenamento de dados. Retorna - collectionpara coleções,- viewpara visualizações e- timeseriespara coleção de séries temporais.- opções - Documento - Opções de collection. - Essas opções correspondem diretamente às opções disponíveis no - db.createCollection(). Para as descrições sobre as opções, consulte- db.createCollection().- informações - Documento - Lista os seguintes campos relacionados à collection: - Somente leitura
- boolean. Se- trueo 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.
 - idIndex - Documento - Fornece informações sobre o índice - _idpara a collection.
Se você não precisar de uma resposta de comando bruto, use db.getCollectionInfos() os métodos de db.getCollectionNames() assistente ou.
Exemplo
Listar todas as collections
O banco de dados do music contém três collections, motorhead, taylorSwift e ramones.
Para obter uma lista de nomes de coleções, execute o comando listCollections com 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: