cursor.hint()
Nesta página
Definição
cursor.hint(index)
Importante
Método mongosh
Este é um método
mongosh
. Esta não é a documentação deNode.js
ou de outros métodos de driver específicos da linguagem de programação.Na maioria dos casos, os métodos
mongosh
funcionam 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çãoindex
string 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 } )