Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

listIndexes

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Campos de comando
  • Acesso necessário
  • Comportamento
  • Saída
  • Exemplos
listIndexes

Retorna informações sobre os índices na coleção especificada. As informações de índice retornadas incluem as chaves e as opções usadas para criar o índice, bem como índices ocultos. Opcionalmente, você pode definir o tamanho do primeiro lote de resultados.

Dica

Em mongosh, esse comando também pode ser executado por meio do método auxiliar db.collection.getIndexes().

Os métodos auxiliares são práticos para os usuários mongosh, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

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 (
{
listIndexes: "<collection-name>",
cursor: { batchSize: <int> },
comment: <any>
}
)

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

listIndexes

string

O nome da collection.

cursor.batchSize

inteiro

Opcional. Especifica o tamanho do lote do cursor.

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

Se o controle de acesso for imposto, a função read integrada fornece os privilégios necessários para executar listIndexes para as coleções em um banco de dados.

listIndexes não retorna informações sobre os índices do Atlas Search. Em vez disso, utilize $listSearchIndexes.

A partir do MongoDB 4.2, se o cliente que emitiu listIndexes se desconectar antes da conclusão da operação, o MongoDB marcará listIndexes para encerramento usando killOp.

Para executar em um membro do conjunto de réplicas, as operações delistIndexes 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.

A partir do MongoDB 6.3, 6.0.5 e 5.0.16, o campo wildcardProjection armazena a projeção do índice na forma enviada. Versões anteriores do servidor podem ter armazenado a projeção de forma normalizada.

O servidor usa o índice da mesma maneira, mas você pode notar uma diferença na saída dos comandos listIndexes e db.collection.getIndexes().

listIndexes.cursor

Um conjunto de resultados retornado no tamanho do lote especificado pelo cursor. Cada documento no resultado do lote contém os seguintes campos:

Campo
Tipo
Descrição

id

inteiro

Um número inteiro de 64 bits. Se for zero, não há mais lotes de informações. Se for diferente de zero, um ID de cursor, utilizável em um comando getMore para obter o próximo lote de informações do índice.

ns

string

O banco de dados e o nome collection no seguinte formato: <database-name>.<collection-name>

firstBatch

documento

As informações do índice incluem as chaves e opções usadas para criar o índice. A opção de índice oculto só estará presente se o valor for verdadeiro.

Utilize o getMore para recuperar resultados adicionais conforme necessário.

listIndexes.ok

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

Este exemplo lista índices para a collection contacts sem especificar o tamanho do lote do cursor.

1db.runCommand (
2 {
3 listIndexes: "contacts"
4 }
5)
1{
2 cursor: {
3 id: Long("0"),
4 ns: 'test.contacts',
5 firstBatch: [
6 { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' },
7 { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' }
8 ]
9 },
10 ok: 1
11}

Este exemplo lista índices para a collection contacts e especifica um tamanho de lote de cursor de 1.

1db.runCommand (
2 {
3 listIndexes: "contacts", cursor: { batchSize: 1 }
4 }
5)
1{
2 cursor: {
3 id: Long("4809221676960028307"),
4 ns: 'test.contacts',
5 firstBatch: [ { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' } ]
6 },
7 ok: 1
8}

Este exemplo utiliza getMore para recuperar lotes de resultados adicionais da collection contacts.

1db.runCommand(
2 {
3 getMore: Long("4809221676960028307"), collection: "contacts"
4 }
5)
1{
2 cursor: {
3 nextBatch: [ { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } ],
4 id: Long("0"),
5 ns: 'test.contacts'
6 },
7 ok: 1
8}

Voltar

listDatabases