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.
Sintaxe
db.collection.hideIndex(<index>)
Parâmetros
O método db.collection.hideIndex()
utiliza o seguinte parâmetro:
Parâmetro | Tipo | Descrição |
---|---|---|
index | 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
.