Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Crie um índice

Se seu aplicativo executar queries repetidamente nos mesmos campos, crie um índice nesses campos para melhorar o desempenho.

Para criar um índice, use o método shell createIndex() ou método equivalente para seu driver. Esta página mostra exemplos para o shell e drivers do MongoDB.

Ao executar um comando de criação de índice no MongoDB Shell ou em um driver, o MongoDB só cria o índice se não existir um índice com a mesma especificação.

Embora os índices melhorem o desempenho da consulta, adicionar um índice tem impacto negativo no desempenho para operações de gravação. Para coleções com alta taxa de gravação para leitura, os índices são caros porque cada inserção e atualização também devem atualizar quaisquer índices.

Aviso

Não crie índices em campos criptografados. A criação de índices em campos criptografados que usam a Queryable Encryption afeta negativamente o desempenho. Em vez disso, você pode criar um índice no campo __safeContent__ para suportar queries em campos criptografados.

Utilize o mongosh para monitorar a criação do índice.

Para ver quais índices existem na sua coleção, incluindo os que estão sendo criados atualmente, execute o método db.collection.getIndexes():

db.collection.getIndexes()

Para verificar se o seu índice está construindo, utilize o $currentOp com db.aggregate() no banco de dados do admin.

O seguinte pipeline de agregação utiliza o estágio $match para mostrar uma operação ativa construindo um índice descendente no campo name:

db.getSiblingDB("admin").aggregate( [
{ $currentOp : { idleConnections: true } },
{ $match : {"command.createIndexes": { $exists: true } } }
] )

O MongoDB marca as construções de índice em várias etapas, incluindo a espera pelo quórum para a confirmação, como uma conexão inativa, definindo o campo active para false. A configuração idleConnections: true inclui essas conexões ociosas na saída $currentOp.

Para visualizar informações sobre índices existentes usando um driver, consulte a documentação do seu driver.