db.collection.hideIndex()
Definição
db.collection.hideIndex()
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação de 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.hidden
definida usando o comandocollMod
.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. Para localizar o nome do índice ou documento de especificação do índice, você pode usar 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
.