Definição
- db.collection.hideIndex()
- Importante- Método mongosh- Esta página documenta um método - mongosh. Esta não é a documentação para comandos de banco de dados nem drivers específicos de linguagem, como Node.js.- Para o comando de banco de dados de dados, consulte a opção de collection - index.hiddendefinida usando o comando- collMod.- Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem. - Oculta um índice existente do planejador de consultas. Um índice oculto do planejador de consultas não é avaliado como parte da seleção do plano de consultas. - Ao ocultar um índice do planejador, você pode avaliar o possível impacto da eliminação de um índice sem eliminá-lo. Se o impacto for negativo, você poderá exibir o índice em vez de ter que recriar um índice descartado. E como os índices são totalmente mantidos enquanto estão ocultos, os índices ficam imediatamente disponíveis para uso quando são exibidos. - Para obter detalhes, consulte Índices ocultos. 
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 
Sintaxe
db.collection.hideIndex(<index>) 
Parâmetros
O método db.collection.hideIndex() utiliza o seguinte parâmetro:
| Parâmetro | Tipo | Descrição | 
|---|---|---|
| 
 | string ou documento | Especifica o índice a ser ocultado do planejador de consultas. Você pode especificar o índice pelo nome ou pelo documento de especificação. DicaVocê pode utilizar o método  Para ocultar um índice de texto, especifique o nome do índice. | 
O db.collection.hideIndex() é um wrapper de shell mongosh para o comando collMod .
Comportamento
Versão de compatibilidade de recursos
Para ocultar um índice, você deve ter featureCompatibilityVersion configurado para 5.0 ou superior.
Restrições
Não é possível ocultar o índice _id.
Estatística de redefinição de modificações do índice
Ocultar um índice não oculto redefine seu $indexStats.
Sem operação
Ocultar um índice já oculto não afeta o índice. No entanto, a operação ainda gerará uma entrada de oplog vazia.
Controle de acesso
Se a implantação forçar a autenticação/autorização, você deve ter o privilégio collMod no banco de dados da coleção.
A função embutida dbAdmin fornece os privilégios exigidos.
Exemplo
O exemplo a seguir oculta um índice existente.
Primeiro, utilize o db.collection.createIndex() para criar um índice sem ocultar:
db.restaurants.createIndex( { borough: 1, ratings: 1 } ); 
Para ocultar o índice, você pode especificar o documento de especificação da chave de índice ou o nome do índice para o método db.collection.hideIndex() . A seguir, o nome do índice é especificado:
db.restaurants.hideIndex( "borough_1_ratings_1" ); 
Para verificar, execute db.collection.getIndexes() na collection restaurants:
db.restaurants.getIndexes(); 
A operação retorna as seguintes informações:
[    {       "v" : 2,       "key" : {          "_id" : 1       },       "name" : "_id_"    },    {       "v" : 2,       "key" : {          "borough" : 1,          "ratings" : 1       },       "name" : "borough_1_ratings_1",       "hidden" : true    } ] 
A opção de índice hidden é retornada somente se o valor for true.