Sommaire

Index partiels Index:partiels

Les index partiels ont été introduits à partir de la version 3.2 afin de remplacer progressivement les index sparse, bien plus limités. En effet, un index sparse ne contient que les documents dans lesquels le champ ciblé est présent.

Un index partiel se comporte un peu comme un index sparse dans la mesure où il permet lui aussi d’indexer un sous-ensemble des documents contenus dans une collection. Ces index utilisent un filtre qui va agir comme un critère de sélection des documents qui vont y figurer. Mais contrairement aux index sparse qu’ils ambitionnent de supplanter, le filtre n’est pas forcément un champ ciblé par l’index comme nous le verrons. Leur avantage est évident : ces index de taille réduite permettent d’économiser de la mémoire tout en ayant de meilleures performances qu’un index classique lors des écritures.

Construisons une collection nommée disques dans laquelle nous injectons trois documents :

db.disques.insertMany([{ 
    "groupe": "The Who", 
    "titre": "Tommy", 
    "prix": 5, 
    "dispo": true 
}, { 
    "groupe": "AC/DC", 
    "titre": "Powerage", 
    "prix": 8, 
    "etat": null, 
    "dispo": ...