View a markdown version of this page

Proprietà dell'indice: nascosta - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Proprietà dell'indice: nascosta

Amazon DocumentDB supporta la proprietà hidden index a partire da Amazon DocumentDB 8.0.1.

Gli indici nascosti non sono visibili al pianificatore di query e non possono essere utilizzati per supportare una query. Nascondendo un indice dal planner, puoi valutare il potenziale impatto dell'eliminazione dell'indice senza eliminarlo effettivamente. Se l'impatto è negativo, puoi mostrare l'indice invece di dover ricreare un indice eliminato.

La hidden proprietà è supportata su tutti i tipi di indice, inclusi gli indici a campo singolo, composto, multichiave, di testo, geospaziale e vettoriale.

Comportamento

Oltre ad essere nascosti dal planner, gli indici nascosti sono completamente gestiti e applicati. Ad esempio:

  • Se un indice nascosto è un indice univoco, l'indice applica comunque il suo vincolo univoco ai documenti.

  • Se un indice nascosto è un indice TTL, l'indice scade comunque con i documenti.

  • Gli indici nascosti sono inclusi nei risultati. listIndexes db.collection.getIndexes()

  • Gli indici nascosti vengono aggiornati durante le operazioni di scrittura sulla raccolta e continuano a consumare spazio su disco e memoria. Di conseguenza, vengono inclusi in operazioni statistiche come db.collection.stats() e. $indexStats

  • Se si nasconde un indice non nascosto o si mostra un indice nascosto, si ripristina il relativo. $indexStats Nascondere un indice già nascosto o mostrare un indice già nascosto non viene reimpostato. $indexStats

Restrizioni

  • Non è possibile nascondere l'indice. _id

  • Non è possibile cursor.hint() forzare l'uso di un indice nascosto.

  • $mergenon riesce se l'indice univoco richiesto nei on campi è nascosto. Rende visibile l'indice prima dell'esecuzione$merge.

Esempi

Crea un indice nascosto

Per creare un indice nello stato nascosto, utilizzate il db.collection.createIndex() metodo e impostate l'hiddenopzione su true nella definizione dell'indice.

Ad esempio, la seguente operazione crea un indice ascendente nascosto sul productId campo:

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

Per verificare, esegui db.collection.getIndexes() o listIndexes sulla raccolta. Un indice nascosto include "hidden": true nella sua definizione.

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

L'opzione index hidden viene restituita solo se il valore ètrue.

Nascondi un indice esistente

Utilizzate il collMod comando per nascondere un indice esistente. Identifica l'indice in base al suo valore name o al suo keyPattern valore e impostalo hidden sutrue.

L'esempio seguente nasconde un indice in base al nome.

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

È inoltre possibile identificare l'indice in base al relativo schema chiave.

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

Mostra un indice esistente

Per rendere nuovamente visibile un indice nascosto, usa il collMod comando with hidden set tofalse.

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

Poiché gli indici vengono mantenuti completamente quando sono nascosti, l'indice è immediatamente disponibile per l'uso una volta aperto.