Un index dans MongoDB est une structure de données spéciale qui contient les données de quelques champs de documents sur lesquels l’index est créé. Les index améliorent la vitesse des opérations de recherche dans la base de données car au lieu de rechercher l’ensemble du document, la recherche est effectuée sur les index qui ne contiennent que peu de champs. D’autre part, avoir trop d’index peut entraver les performances des opérations d’insertion, de mise à jour et de suppression en raison de l’écriture supplémentaire et de l’espace de données supplémentaire utilisé par les index.
Comment créer un index dans la syntaxe MongoDB
:
db.collection_name.createIndex({field_name: 1 or -1})
La valeur 1 est pour l’ordre croissant et -1 pour l’ordre décroissant.
Par exemple, j’ai une collection studentdata
. Les documents à l’intérieur de cette collection ont les champs suivants:
student_name, student_id et student_age
Disons que je veux créer l’index sur le champ student_name dans l’ordre croissant:
db.studentdata.createIndex({student_name: 1})
Sortie:
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1}
Nous avons créé l’index sur student_name, ce qui signifie que lorsque quelqu’un recherche le document en fonction du student_name, la recherche sera plus rapide car l’index sera utilisé pour cette recherche. Il est donc important de créer l’index sur le champ qui sera fréquemment recherché dans une collection.
MongoDB – Recherche des index dans une collection
Nous pouvons utiliser la méthode getIndexes() pour trouver tous les index créés sur une collection. La syntaxe de cette méthode est:
db.collection_name.getIndexes()
Donc pour obtenir les index de la collection studentdata
, la commande serait:
> db.studentdata.getIndexes()
La sortie montre que nous avons deux index dans cette collection. L’index par défaut créé sur _id et l’index que nous avons créé sur le champ student_name.
MongoDB – Supprimer des index dans une collection
Vous pouvez supprimer un index particulier ou tous les index.
Supprimer un index spécifique :
Pour cela, la méthode dropIndex() est utilisée.
db.collection_name.dropIndex({index_name: 1})
Laisse tomber l’index que nous avons créé sur le champ student_name
dans la collection studentdata
. La commande pour ceci :
db.studentdata.dropIndex({student_name: 1})
nIndexesWas: Il montre combien d’index il y avait avant que cette commande ne soit exécutée
ok: 1: Cela signifie que la commande est exécutée avec succès.
Suppression de tous les index :
Pour supprimer tous les index d’une collection, nous utilisons la méthode dropIndexes().
Syntaxe de la méthode dropIndexs():
db.collection_name.dropIndexes()
Disons que nous voulons supprimer tous les index de la collection studentdata
.
db.studentdata.dropIndexes()
Le message « index non-_id supprimés pour la collecte” indique que l’index _id par défaut restera toujours et ne pourra pas être supprimé. Cela signifie qu’en utilisant cette méthode, nous ne pouvons supprimer que les index que nous avons créés, nous ne pouvons pas supprimer l’index par défaut créé sur le champ _id.