Definição
cursor.hint(index)Importante
Método mongosh
Esta página documenta um método
mongosh. Esta não é a documentação de um driver de idioma específico, como 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.O método
cursor.hint()tem o seguinte parâmetro: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
Quando existe um filtro de índice para a forma de query, o MongoDB ignora o
hint().Se uma query incluir uma expressão
$text, você não poderá usarhint()para especificar o índice a ser usado na query.Se você usar
hint()em um índice oculto ou que não existe, a operação retornará um erro.Em coleções de séries temporais, você só pode especificar dicas usando o nome do índice, não o padrão de chave de índice.
As configurações de query têm precedência mais alta do que as dicas de índice. O MongoDB ignora as dicas de índice que você passa como campos de comando quando uma configuração de query correspondente contém dicas de índice. As dicas de índice não afetam a forma de query. Para obter mais informações sobre dicas e configurações de query, consulte Sintaxedas 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 } )