MongoDB Indexation : createIndex() et dropIndex()
⚡ Résumé intelligent
MongoDB Les index stockent un sous-ensemble ordonné des champs d'une collection, permettant ainsi aux requêtes de localiser des documents sans avoir à parcourir chaque enregistrement. Les méthodes `createIndex`, `getIndexes` et `dropIndex` permettent de créer, lister et supprimer ces structures essentielles aux performances.

Quels sont MongoDB Des index ?
Les index sont très importants dans toute base de données, et avec MongoDB C'est la même chose. Grâce à l'utilisation d'index, l'exécution de requêtes dans MongoDB devient plus efficace.
Si vous aviez une collection contenant des milliers de documents sans index, et que vous effectuiez ensuite une requête pour trouver certains documents, alors dans ce cas… MongoDB il faudrait scanner toute la collection pour trouver les documents. Mais si vous aviez des index, MongoDB utiliserait ces index pour limiter le nombre de documents à rechercher dans la collection.
Les index sont des ensembles de données particuliers qui stockent une partie des données de la collection. Comme les données sont partielles, leur lecture est facilitée. Cet ensemble partiel stocke la valeur d'un champ spécifique, ou d'un ensemble de champs, triée par valeur.
Comprendre l'impact des index
Même si l'introduction a montré que les index sont utiles pour les requêtes, un trop grand nombre d'index peut ralentir d'autres opérations telles que les opérations d'insertion, de suppression et de mise à jour.
Si des opérations fréquentes d'insertion, de suppression et de mise à jour sont effectuées sur les documents, les index devront être modifiés aussi souvent, ce qui constituera une surcharge pour la collection.
L'exemple ci-dessous illustre les valeurs de champ pouvant constituer un index dans une collection. Un index peut être basé sur un seul champ de la collection ou sur plusieurs champs.
Dans l'exemple ci-dessous, l'identifiant de l'employé est « 1 » et l'employéCode Les identifiants « AA » servent à indexer les documents de la collection. Ainsi, lors d'une recherche, ces index permettent de trouver rapidement et efficacement les documents recherchés.
Ainsi, même si la requête de recherche est basée sur l'employéCode « AA », ce document serait retourné.
Comment créer des index : createIndex()
Création d'un index dans MongoDB se fait en utilisant le créerIndex méthode.
L’exemple suivant montre comment ajouter un index à une collection. Supposons que nous ayons une collection Employee, qui comporte les champs nommés « Employeeid » et « EmployeeName ».
db.Employee.createIndex({Employeeid:1})
Code Explication:
- Le créerIndex La méthode est utilisée pour créer un index basé sur le « Employeeid » du document.
- Le paramètre « 1 » indique que lors de la création de l’index avec les valeurs du champ « Employeeid », celles-ci doivent être triées par ordre croissant. Veuillez noter que cela diffère du champ _id (qui identifie chaque document de manière unique). MongoDB La création est automatique. Les documents seront désormais triés selon l'identifiant de l'employé et non plus selon le champ _id.
Si la commande est exécutée avec succès, le résultat suivant s'affichera :
Sortie :
- La valeur numIndexesBefore : 1 indique le nombre de valeurs de champ dans les index avant l’exécution de la commande. Chaque collection possède le champ _id, qui compte également comme une valeur de champ ; par conséquent, numIndexesBefore vaut 1.
- La valeur numIndexesAfter : 2 indique le nombre de valeurs de champ dans les index après l’exécution de la commande.
- Le résultat « ok : 1 » indique que l'opération a réussi et que le nouvel index est ajouté à la collection.
Le code ci-dessus montre comment créer un index basé sur la valeur d'un seul champ, mais il est également possible de créer un index basé sur plusieurs valeurs de champs. L'exemple suivant illustre comment procéder :
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
La méthode createIndex prend désormais en compte plusieurs valeurs de champ, ce qui entraîne la création d'un index basé sur « Employeeid » et « EmployeeName ». Les indications Employeeid:1 et EmployeeName:1 précisent que l'index doit être créé sur ces deux valeurs de champ, le préfixe :1 indiquant un ordre croissant. Il s'agit d'un index composé.
Comment trouver les index : getIndexes()
Trouver un index dans MongoDB se fait en utilisant le obtenir les index méthode. L'exemple suivant montre comment procéder :
db.Employee.getIndexes()
La méthode getIndexes est utilisée pour rechercher tous les index d'une collection.
Si la commande est exécutée avec succès, le résultat suivant s'affichera :
Sortie :
Le résultat affiche un document indiquant la présence de deux index dans la collection : le champ _id et le champ Employeeid. Le symbole :1 précise que les valeurs des champs de l’index sont créées par ordre croissant.
Comment supprimer des index : dropIndex()
Suppression d'un index dans MongoDB se fait en utilisant le dropIndex méthode. L'exemple suivant montre comment procéder :
db.Employee.dropIndex({Employeeid:1})
La méthode dropIndex prend en paramètre les valeurs des champs à supprimer de l'index.
Si la commande est exécutée avec succès, le résultat suivant s'affichera :
Sortie :
- La valeur nIndexesWas : 3 indique le nombre de valeurs de champ dans les index avant l’exécution de la commande. Chaque collection possède le champ _id, qui compte également comme une valeur de champ.
- La sortie ok: 1 spécifie que l'opération a réussi et le champ « Employeeid » est supprimé de l'index.
Pour supprimer tous les index d'une collection en une seule fois, on peut utiliser la commande dropIndexes. L'exemple suivant illustre la procédure :
db.Employee.dropIndexes()
La méthode dropIndexes supprimera tous les index à l'exception de l'index _id.
Si la commande est exécutée avec succès, le résultat suivant s'affichera :
Sortie :
- nIndexesWas : 2 indique le nombre de valeurs de champ dans les index avant l’exécution de la commande.
- Chaque collection possède le champ _id, qui compte également comme une valeur de champ et ne sera pas supprimé par MongoDB; c'est ce que ce message indique.
- La sortie ok: 1 spécifie que l'opération a réussi.










