Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

listCollections (comando de banco de dados)

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 listCollections comando retorna uma lista não classificada de todas as coleções e visualizações no banco de dados. Use o documento retornado para criar um cursor na coleção.

mongosh fornece os métodos assistente db.getCollectionInfos() e db.getCollectionNames(), bem como o comando show collections.

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

O comando tem a seguinte sintaxe:

db.runCommand(
{
listCollections: 1,
filter: <document>,
nameOnly: <boolean>,
authorizedCollections: <boolean>,
comment: <any>
}
)

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 listCollectionspor.

nameOnly

booleano

Opcional. Um sinalizador para indicar se o comando retorna apenas o nome e tipo (view, collection ou timeseries) ou retorna o nome e outras informações.

O valor padrão é false.

Quando nameOnly é true, sua expressão filter só pode filtrar com base no nome e tipo de uma collection. Nenhum outro campo está disponível.

authorizedCollections

booleano

Opcional. Um sinalizador que, quando configurado para true e usado nameOnly: true com, permite a um usuário sem o privilégio necessário (ou seja, ação no banco de dados) executar o comando quando o controle de acesso élistCollections imposto.

Quando authorizedCollections nameOnly as opções e são definidas como true, o comando retorna apenas as collections para as quais o usuário tem privilégios. Por exemplo, se um usuário tiver a ação em collections específicas, o comando find find retornará somente essas collections. Se um usuário tiver ou qualquer outra ação no recurso do banco de dados , o comando listará todas as collections no banco de dados.

O valor padrão é false. Ou seja, o usuário deve ter a ação listCollections no banco de dados para executar o comando.

Para usuários que têm ação no banco de dados, esta opção não tem listCollections efeito.

Quando usado sem nameOnly: true, esta opção não tem efeito. O usuário deve ter os privilégios exigidos para executar o comando quando o controle de acesso é imposto. Caso contrário, o usuário não pode executar o comando.

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 listCollections é herdado por todos os comandos getMore subsequentes executados no cursor listCollections.

Use um filtro para limitar os resultados listCollections de. Especifique um filter em qualquer um dos campos retornados no listCollections conjunto de resultados .

listCollections travar comportamento:

  • Antes do MongoDB,5.0 listCollections obtém um bloqueio compartilhado de intenção em cada collection no banco de dados quando listCollections 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

Se o cliente que emitiu listCollections se desconectar antes da conclusão da operação, o MongoDB marcará listCollections para encerramento usando killOp.

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.

O comando listCollections e seu wrapper db.getCollectionInfos() exigem a ação listCollections quando o controle de acesso é imposto. 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
}
)
listCollections.cursor

Um documento que contém as informações necessárias para criar um cursor para documentos que contêm nomes de coleções 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:

Campo
Tipo
Descrição

name

String

Nome da collection.

type

String

Tipo de armazenamento de dados. Retorna collection para coleções, view para visualizações e timeseries para coleção de séries temporais.

opções

Documento

Opções de collection.

Essas opções correspondem às opções disponíveis no. Para descrições de db.createCollection() opção,db.createCollection() consulte.

informações

Documento

Lista os seguintes campos relacionados à collection:

Somente leitura
boolean. Se true o armazenamento de dados é somente leitura.
uuid
UUID. Uma vez estabelecido, o UUID da coleção não muda. O UUID da coleção permanece o mesmo entre os membros do conjunto de réplicas e fragmentos em um cluster fragmentado.

idIndex

Documento

Fornece informações sobre o índice _id para a collection.

listCollections.ok

O valor de retorno do comando. Um valor de 1 indica o sucesso.

Se você não precisar de uma resposta de comando bruto, use os métodos de assistente db.getCollectionInfos() ou db.getCollectionNames().

O banco de dados sample_mflix contém coleções como movies, theaters, users e outras.

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
}
)
{
cursor: {
id: Long('0'),
ns: 'sample_mflix.$cmd.listCollections',
firstBatch: [
{ name: 'movies', type: 'collection' },
{ name: 'theaters', type: 'collection' },
{ name: 'users', type: 'collection' },
{ name: 'embedded_movies', type: 'collection' },
{ name: 'sessions', type: 'collection' },
{ name: 'comments', type: 'collection' },
{ name: 'system.views', type: 'collection' }
]
},
ok: 1
}

Para obter informações mais detalhadas, remova a opção nameOnly.

db.runCommand(
{
listCollections: 1.0
}
)
{
cursor: {
id: Long('0'),
ns: 'sample_mflix.$cmd.listCollections',
firstBatch: [
{
name: 'movies',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'theaters',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'users',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'embedded_movies',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'sessions',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'comments',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'system.views',
type: 'collection',
options: {},
info: { ... },
idIndex: { v: 2, key: { _id: 1 }, name: '_id_' }
}
]
},
ok: 1
}

Para opções de collection:

Para obter as informações da collection:

Voltar

killOp

Nesta página