Definição
listIndexesRetorna informações sobre os índices na collection especificada, incluindo índices ocultos e índices que estão sendo criados atualmente. As informações de índice retornadas incluem as chaves e as opções usadas para criar o índice. Opcionalmente, você pode definir o tamanho do lote do primeiro lote de resultados.
Dica
In
mongosh, this command can also be run through thedb.collection.getIndexes()helper method.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
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 ( { listIndexes: "<collection-name>", cursor: { batchSize: <int> }, comment: <any> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
| string | O nome da collection. |
| inteiro | Opcional. Especifica o tamanho do lote do cursor. Para especificar o tamanho do lote para operações subsequentes do |
| 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 |
Acesso necessário
If access control is enforced, the built-in read role provides the required privileges to run listIndexes for the collections in a database.
Comportamento
Índices de pesquisa do MongoDB
listIndexes does not return information on MongoDB Search indexes. Instead, use $listSearchIndexes.
Desconexão do cliente
If the client that issued listIndexes disconnects before the operation completes, MongoDB marks listIndexes for termination using killOp.
Restrição de estado do membro do conjunto de réplica
To run on a replica set member, listIndexes operations require the member to be in PRIMARY or SECONDARY state. If the member is in another state, such as STARTUP2, the operation errors.
Índices curinga
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.
The server uses the index the same way, but you may notice a difference in the output of the listIndexes and db.collection.getIndexes() commands.
Saída
listIndexes.cursorUm conjunto de resultados retornado no tamanho do lote especificado pelo cursor. Cada documento no resultado do lote contém os seguintes campos:
CampoTipoDescriçãoid
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
getMorepara 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
getMorepara recuperar resultados adicionais conforme necessário.
Exemplos
Listar índices de banco de dados
Este exemplo lista índices para a collection contacts sem especificar o tamanho do lote do cursor.
1 db.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 }
Especifique o tamanho do lote de resultados
Este exemplo lista índices para a collection contacts e especifica um tamanho de lote de cursor de 1.
1 db.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 }
Recuperar resultados adicionais
Este exemplo utiliza getMore para recuperar lotes de resultados adicionais da collection contacts.
1 db.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 }