As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Propriedade do índice: oculta
O Amazon DocumentDB oferece suporte à propriedade de hidden índice começando com o Amazon DocumentDB 8.0.1.
Os índices ocultos não são visíveis para o planejador de consultas e não podem ser usados para dar suporte a uma consulta. Ao ocultar um índice do planejador, você pode avaliar o impacto potencial de descartar o índice sem realmente eliminá-lo. Se o impacto for negativo, você poderá exibir o índice em vez de precisar recriar um índice descartado.
A hidden propriedade é compatível com todos os tipos de índice, incluindo índices de campo único, composto, multichave, texto, geoespacial e vetorial.
Comportamento
Além de ficarem ocultos do planejador, os índices ocultos são totalmente mantidos e aplicados. Por exemplo:
Se um índice oculto for um índice exclusivo, o índice ainda aplicará sua restrição exclusiva aos documentos.
Se um índice oculto for um índice TTL, o índice ainda expirará os documentos.
Índices ocultos são incluídos em
listIndexese nosdb.collection.getIndexes()resultados.Os índices ocultos são atualizados nas operações de gravação na coleção e continuam consumindo espaço em disco e memória. Como resultado, eles são incluídos em operações estatísticas, como
db.collection.stats()$indexStatse.Ocultar um índice não oculto ou exibir um índice oculto redefine seu.
$indexStatsOcultar um índice já oculto ou exibir um índice já não oculto não é redefinido.$indexStats
Restrições
Você não pode ocultar o
_idíndice.Você não pode usar
cursor.hint()para forçar o uso de um índice oculto.$mergefalhará se o índice exclusivo necessário nosoncampos estiver oculto. Torne o índice visível antes de executar$merge.
Exemplos
Crie um índice oculto
Para criar um índice no estado oculto, use o db.collection.createIndex() método e defina a hidden opção como true na definição do índice.
Por exemplo, a operação a seguir cria um índice ascendente oculto no productId campo:
db.collection.createIndex( { "productId": 1 }, { "name": "productId_1", "hidden": true } )
Para verificar, executar db.collection.getIndexes() ou listIndexes acessar a coleção. Um índice oculto inclui "hidden": true em sua definição.
db.collection.getIndexes() [ { "v": 4, "key": { "_id": 1 }, "name": "_id_" }, { "v": 4, "key": { "productId": 1 }, "name": "productId_1", "hidden": true } ]
A opção de índice só hidden é retornada se o valor fortrue.
Ocultar um índice existente
Use o collMod comando para ocultar um índice existente. Identifique o índice por its name ou por its keyPattern e defina-o como hiddentrue.
O exemplo a seguir oculta um índice por nome.
db.runCommand({ collMod: "collection", index: { name: "productId_1", // Specify the index name hidden: true } })
Você também pode identificar o índice por seu padrão de chave.
db.runCommand({ collMod: "collection", index: { keyPattern: { productId: 1 }, // Specify the index key specification document hidden: true } })
Exibir um índice existente
Para tornar um índice oculto visível novamente, use o collMod comando com hidden set tofalse.
db.runCommand({ collMod: "collection", index: { name: "productId_1", hidden: false } })
Como os índices são totalmente mantidos enquanto estão ocultos, o índice fica imediatamente disponível para uso quando não está oculto.