Definição
listIndexesRetorna 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 auxiliardb.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.
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 o seguinte formato:
db.runCommand ( { listIndexes: "<collection-name>", cursor: { batchSize: <int> }, comment: <any> } )
Campos de comando
listIndexes usa os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
| string | O nome da collection. |
| inteiro | Opcional. Especifica o tamanho do lote do cursor. |
| 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). |
Acesso necessƔrio
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.
Comportamento
Desconexão do cliente
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.
Restrição de estado do membro do conjunto de réplica
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.
Ćndices curinga
A partir do MongoDB 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().
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 }