

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
<a name="index-property-hidden"></a>

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
<a name="index-property-hidden-behavior"></a>

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
<a name="index-property-hidden-restrictions"></a>
+ Você não pode ocultar o `_id` índice.
+ Você não pode usar `cursor.hint()` para forçar o uso de um índice oculto.
+ `$merge`falhará se o índice exclusivo necessário nos `on` campos estiver oculto. Torne o índice visível antes de executar`$merge`.

## Exemplos
<a name="index-property-hidden-examples"></a>

### Crie um índice oculto
<a name="index-property-hidden-create"></a>

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 for`true`.

### Ocultar um índice existente
<a name="index-property-hidden-hide"></a>

Use o `collMod` comando para ocultar um índice existente. Identifique o índice por its `name` ou por its `keyPattern` e defina-o como `hidden``true`.

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
<a name="index-property-hidden-unhide"></a>

Para tornar um índice oculto visível novamente, use o `collMod` comando com `hidden` set to`false`.

```
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.