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.
listIndexesdb.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.$indexStatsSe si nasconde un indice non nascosto o si mostra un indice nascosto, si ripristina il relativo.
$indexStatsNascondere un indice già nascosto o mostrare un indice già nascosto non viene reimpostato.$indexStats
Restrizioni
Non è possibile nascondere l'indice.
_idNon è possibile
cursor.hint()forzare l'uso di un indice nascosto.$mergenon riesce se l'indice univoco richiesto neioncampi è 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.