View a markdown version of this page

Propiedad de índice: oculta - Amazon DocumentDB

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

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, multiclave, de texto, geoespaciales y vectoriales.

Comportamiento

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 al escribir operaciones 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 Ocultar un índice ya oculto o mostrar un índice que ya no está oculto no se restablece. $indexStats

Restricciones

  • No puede ocultar el _id índice.

  • No se puede usar cursor.hint() para forzar el uso de un índice oculto.

  • $mergefalla si el índice único requerido en los on campos está oculto. Haga que el índice esté visible antes de ejecutarlo$merge.

Ejemplos

Crea un índice oculto

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

Ocultar un índice existente

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

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

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.