hint() (Forçar um Índice)
Última atualização: 2026-10-09
hint() (Forçar um Índice)
hint() força uma consulta a usar um índice específico: `db.users.find({ age: { $gt: 20 } }).hint({ age: 1 })`, passando a chave do índice ou seu nome. O otimizador geralmente escolhe bem, mas hint() pode substituir escolhas ruins quando a distribuição de dados é distorcida. Use-o com moderação em produção e reverifique se o índice continua relevante.
| Categoria | Cursor |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.find(<filter>).hint(<indexKeyOrName>)
⚙️ Parâmetros
| chave ou nome de índice | O índice a forçar, por exemplo {age: 1} ou 'age_1'. |
|---|
Retorno:O cursor com o índice forçado (encadeável).
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// hint: força o índice age_1
const result = db.users.find({ age: { $gt: 20 } })
.hint({ age: 1 })
.toArray()
result.length
Saída:
35
📌 Notas
- Um erro é lançado quando o índice indicado não existe
- hint() não é ótimo para sempre; reavalie conforme os dados mudam
- hint({$natural: 1}) força uma varredura de coleção
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo hint se relaciona com índices?
Ahint() força uma consulta para um determinado índice, ignorando a escolha do otimizador — um conserto quando o otimizador escolhe errado.
QE se o índice indicado não existir?
AA consulta falha imediatamente — ela não cai para outro índice.
QComo forço uma varredura de coleção com hint?
APasse hint({$natural: 1}), que varre documentos em ordem física.