View a markdown version of this page

Propriedade do índice: oculta - Amazon DocumentDB

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 listIndexes e nos db.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() $indexStats e.

  • Ocultar um índice não oculto ou exibir um índice oculto redefine seu. $indexStats Ocultar 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 nos on campos 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.