Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Propriété de l'index : masquée
Amazon DocumentDB prend en charge la propriété d'hiddenindex à partir d'Amazon DocumentDB 8.0.1.
Les index masqués ne sont pas visibles par le planificateur de requêtes et ne peuvent pas être utilisés pour prendre en charge une requête. En masquant un index dans le planificateur, vous pouvez évaluer l'impact potentiel d'une suppression de l'indice sans le supprimer réellement. Si l'impact est négatif, vous pouvez afficher l'index au lieu de devoir recréer un index supprimé.
La hidden propriété est prise en charge sur tous les types d'index, y compris les index à champ unique, composés, multiclés, textuels, géospatiaux et vectoriels.
Comportement
En plus d'être masqués dans le planificateur, les index masqués sont entièrement gérés et appliqués. Par exemple :
Si un index masqué est un index unique, l'index applique toujours sa contrainte unique aux documents.
Si un index masqué est un index TTL, l'index fait toujours expirer les documents.
Les index masqués sont inclus dans
listIndexeslesdb.collection.getIndexes()résultats.Les index masqués sont mis à jour lors des opérations d'écriture dans la collection et continuent de consommer de l'espace disque et de la mémoire. Par conséquent, ils sont inclus dans les opérations statistiques telles que
db.collection.stats()et$indexStats.Le fait de masquer un index non masqué, ou d'afficher un index masqué, le réinitialise.
$indexStatsLe fait de masquer un index déjà masqué, ou d'afficher un index déjà non masqué, n'est pas réinitialisé.$indexStats
Restrictions
Vous ne pouvez pas masquer l'
_idindex.Vous ne pouvez pas
cursor.hint()forcer l'utilisation d'un index masqué.$mergeéchoue si l'index unique requis sur lesonchamps est masqué. Rendez l'index visible avant de l'exécuter$merge.
Exemples
Création d'un index masqué
Pour créer un index à l'état masqué, utilisez la db.collection.createIndex() méthode et définissez l'hiddenoption sur true dans la définition de l'index.
Par exemple, l'opération suivante crée un index croissant masqué sur le productId champ :
db.collection.createIndex( { "productId": 1 }, { "name": "productId_1", "hidden": true } )
Pour vérifier, exécutez db.collection.getIndexes() ou listIndexes sur la collection. Un index masqué est inclus "hidden": true dans sa définition.
db.collection.getIndexes() [ { "v": 4, "key": { "_id": 1 }, "name": "_id_" }, { "v": 4, "key": { "productId": 1 }, "name": "productId_1", "hidden": true } ]
L'option d'index n'hiddenest renvoyée que si la valeur esttrue.
Masquer un index existant
Utilisez la collMod commande pour masquer un index existant. Identifiez l'index soit par son, name soit par sonkeyPattern, et définissez-le hidden surtrue.
L'exemple suivant masque un index par son nom.
db.runCommand({ collMod: "collection", index: { name: "productId_1", // Specify the index name hidden: true } })
Vous pouvez également identifier l'indice par son modèle clé.
db.runCommand({ collMod: "collection", index: { keyPattern: { productId: 1 }, // Specify the index key specification document hidden: true } })
Afficher un index existant
Pour rendre à nouveau visible un index masqué, utilisez la collMod commande avec hidden set tofalse.
db.runCommand({ collMod: "collection", index: { name: "productId_1", hidden: false } })
Étant donné que les index sont entièrement conservés lorsqu'ils sont masqués, ils peuvent être utilisés immédiatement une fois qu'ils sont démasqués.