

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Propiedad de índice: oculta
<a name="index-property-hidden"></a>

Amazon DocumentDB admite la propiedad de `hidden` índice a partir de Amazon DocumentDB 8.0.1.

Los índices ocultos no son visibles para el planificador de consultas y no se pueden usar para respaldar una consulta. Si oculta un índice del planificador, puede evaluar el posible impacto de eliminar el índice sin eliminarlo realmente. Si el impacto es negativo, puedes mostrar el índice en lugar de tener que volver a crear un índice perdido.

La `hidden` propiedad es compatible con todos los tipos de índice, incluidos los índices de campo único, compuestos, de varias claves, de texto, geoespaciales y vectoriales.

## Comportamiento
<a name="index-property-hidden-behavior"></a>

Además de estar ocultos para el planificador, los índices ocultos se mantienen y aplican por completo. Por ejemplo:
+ Si un índice oculto es un índice único, el índice sigue aplicando su restricción única a los documentos.
+ Si un índice oculto es un índice TTL, los documentos seguirán caducando.
+ Los índices ocultos se incluyen en `listIndexes` los resultados. `db.collection.getIndexes()`
+ Los índices ocultos se actualizan en las operaciones de escritura en la colección y siguen consumiendo espacio en disco y memoria. Como resultado, se incluyen en operaciones estadísticas como `db.collection.stats()` y`$indexStats`.
+ Al ocultar un índice oculto, o al mostrar un índice oculto, se restablece su índice. `$indexStats` Al ocultar un índice ya oculto o mostrar un índice que ya no está oculto, no se restablece. `$indexStats`

## Restricciones
<a name="index-property-hidden-restrictions"></a>
+ No puede ocultar el `_id` índice.
+ No se puede usar `cursor.hint()` para forzar el uso de un índice oculto.
+ `$merge`falla si el índice único requerido en los `on` campos está oculto. Haga que el índice esté visible antes de ejecutarlo`$merge`.

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

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

Para crear un índice en estado oculto, utilice el `db.collection.createIndex()` método y defina la `hidden` opción `true` en la definición del índice.

Por ejemplo, la operación siguiente crea un índice ascendente oculto en el `productId` campo:

```
db.collection.createIndex(
  { "productId": 1 },
  { "name": "productId_1", "hidden": true }
)
```

Para verificar, ejecute `db.collection.getIndexes()` o `listIndexes` en la colección. Un índice oculto incluye `"hidden": true` en su definición.

```
db.collection.getIndexes()
[
  {
    "v": 4,
    "key": { "_id": 1 },
    "name": "_id_"
  },
  {
    "v": 4,
    "key": { "productId": 1 },
    "name": "productId_1",
    "hidden": true
  }
]
```

La opción de índice solo `hidden` se devuelve si el valor es`true`.

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

Utilice el `collMod` comando para ocultar un índice existente. Identifique el índice por su `name` o por su valor y `keyPattern` establézcalo `hidden` en`true`.

En el ejemplo siguiente se oculta un índice por su nombre.

```
db.runCommand({
  collMod: "collection",
  index: {
    name: "productId_1", // Specify the index name
    hidden: true
  }
})
```

También puede identificar el índice por su patrón de claves.

```
db.runCommand({
  collMod: "collection",
  index: {
    keyPattern: { productId: 1 }, // Specify the index key specification document
    hidden: true
  }
})
```

### Mostrar un índice existente
<a name="index-property-hidden-unhide"></a>

Para volver a hacer visible un índice oculto, utilice el `collMod` comando con el valor `hidden` establecido en. `false`

```
db.runCommand({
  collMod: "collection",
  index: { name: "productId_1", hidden: false }
})
```

Como los índices se mantienen en su totalidad mientras están ocultos, el índice está inmediatamente disponible para su uso una vez que se ha ocultado.