Definição
cursor.hint(index)Importante
Método mongosh
Este é um método
mongosh. Esta não é a documentação deNode.jsou de outros métodos de driver específicos da linguagem de programação.Na maioria dos casos, os métodos
mongoshfuncionam da mesma forma que os métodos legado do shellmongo. No entanto, alguns métodos legado não estão disponíveis emmongosh.Para a documentação do shell legado
mongo, consulte a documentação para a release correspondente do MongoDB Server:Para drivers da API do MongoDB, consulte a documentação do driver do MongoDB específica do idioma.
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.Você não pode utilizar
hint()em um índice oculto.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.
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 } )