View a markdown version of this page

Propriété de l'index : masquée - Amazon DocumentDB

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 listIndexes les db.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. $indexStats Le 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 les on champs 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.