Definição
cursor.hint(index)Importante
Método mongosh
This page documents a
mongoshmethod. This is not the documentation for a language-specific driver, such as Node.js.Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
Chame esse método em uma query para substituir a seleção de índice padrão do MongoDB e o processo de otimização da query. Use
db.collection.getIndexes()para retornar a lista dos índices atuais em uma coleção.The
cursor.hint()method has the following parameter:ParâmetroTipoDescriçãoindexstring ou documento
O índice para "dica" ou forçar o MongoDB a usar ao executar a query. Especifique o índice pelo nome do índice ou pelo documento de especificação do índice.
Você também pode especificar
{ $natural : 1 }para forçar a query a executar uma varredura de coleção direta ou{ $natural : -1 }para uma varredura de coleção inversa.
Compatibilidade
Esse método 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
Comportamento
When an index filter exists for the query shape, MongoDB ignores the
hint().If a query includes a
$textexpression, you cannot usehint()to specify which index to use for the query.If you use
hint()on a hidden index or an index that doesn't exist, the operation returns an error.As configurações de query de cluster têm precedência sobre as configurações de query ou dicas de índice passadas como um campo de comando . O MongoDB ignora dicas de índice em campos de comando se uma configuração de query correspondente já contiver dicas de índice.
As dicas de índice não afetam a forma de query.
Para mais informações sobre dicas e configurações de query, veja Sintaxe de configurações de query.
$natural
Use $natural em conjunto com cursor.hint() para executar uma verificação de collection para retornar documentos em ordem natural.
Para uso, consulte Escaneamentos forçados de coleção.
Exemplos
Especificar um índice
O exemplo a seguir retorna todos os documentos na coleção chamada users usando o índice no campo age.
db.users.find().hint( { age: 1 } )
Você também pode especificar o índice usando o nome do índice:
db.users.find().hint( "age_1" )
Escaneamentos forçados de coleção
Você pode especificar { $natural : 1 } para forçar a query a executar uma verificação de coleção de encaminhamento:
db.users.find().hint( { $natural : 1 } )
Você também pode especificar { $natural : -1 } para forçar a query a executar uma varredura de coleta reversa:
db.users.find().hint( { $natural : -1 } )