cursor.hint()
Nesta página
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çãoindex
string ou documentoO í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.
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.
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 } )