MongoDB Tutoriel d'indexation - exemple createIndex(), dropindex()

Les index sont très importants dans toute base de données, et avec MongoDB ce n'est pas différent. Avec 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 effectuez 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 spéciaux qui stockent une partie partielle des données de la collection. Les données étant partielles, il devient plus facile de lire ces données. Cet ensemble partiel stocke la valeur d'un champ spécifique ou un ensemble de champs classés par la valeur du champ.

Comprendre l'impact des index

Maintenant, même si depuis l'introduction, nous avons vu que les index sont bons pour les requêtes, avoir trop 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 d'insertion, de suppression et de mise à jour sont fréquentes sur les documents, les index devront alors être modifiés aussi souvent, ce qui ne constituera qu'une surcharge pour la collection.

L'exemple ci-dessous montre un exemple des valeurs de champ qui pourraient constituer un index dans une collection. Un index peut être basé sur un seul champ de la collection ou sur plusieurs champs de la collection.

Dans l'exemple ci-dessous, le Employeeid « 1 » et le EmployeeCode « AA » sont utilisés pour indexer les documents de la collection. Ainsi, lorsqu'une recherche par requête est effectuée, ces index seront utilisés pour trouver rapidement et efficacement les documents requis dans la collection.

Ainsi, même si la requête de recherche est basée sur le EmployeeCode « AA », ce document sera renvoyé.

Comprendre l'impact des index

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 à la collection. Supposons que nous ayons notre même collection Employee qui porte les noms de champ « Employeeid » et « EmployeeName ».

Créer des index : createIndex()

db.Employee.createIndex({Employeeid:1})

Explication du code :

  1. Votre créerIndex La méthode est utilisée pour créer un index basé sur le « Employeeid » du document.
  2. Le paramètre '1' indique que lorsque l'index est créé avec les valeurs du champ « Employeeid », celles-ci doivent être triées par ordre croissant. Veuillez noter que ceci est différent du champ _id (le champ id est utilisé pour identifier de manière unique chaque document de la collection) qui est créé automatiquement dans la collection par MongoDB. Les documents seront désormais triés selon le champ Employeeid et non selon le champ _id.

Si la commande est exécutée avec succès, la sortie suivante s'affichera :

Sortie :

Créer des index : createIndex()

  1. Le numIndexesBefore : 1 indique le nombre de valeurs de champ (les champs réels de la collection) qui figuraient dans les index avant l'exécution de la commande. N'oubliez pas que chaque collection possède le champ _id qui compte également comme valeur de champ pour l'index. Étant donné que le champ d’index _id fait partie de la collection lors de sa création initiale, la valeur de numIndexesBefore est 1.
  2. Le numIndexesAfter: 2 indique le nombre de valeurs de champ qui se trouvaient dans les index après l'exécution de la commande.
  3. Ici, la sortie « ok : 1 » spécifie que l'opération a réussi et le nouvel index est ajouté à la collection.

Le code ci-dessus montre comment créer un index basé sur une valeur de champ, mais on peut également créer un index basé sur plusieurs valeurs de champ.

L'exemple suivant montre comment cela peut être réalisé ;

Créer des index : createIndex()

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Explication du code :

  • La méthode createIndex prend désormais en compte plusieurs valeurs de champ, ce qui entraînera désormais la création de l'index en fonction de « Employeeid » et « EmployeeName ». Employeeid:1 et EmployeeName:1 indiquent que l'index doit être créé sur ces 2 valeurs de champ avec le :1 indiquant qu'il doit être par ordre croissant.

Comment trouver des index : getindexes()

Trouver un index dans MongoDB se fait en utilisant le "getIndex" méthode.

L'exemple suivant montre comment cela peut être réalisé ;

Rechercher des index : getindexes()

db.Employee.getIndexes()

Explication du code :

  • 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, la sortie suivante s'affichera :

Sortie :

Rechercher des index : getindexes()

  • La sortie renvoie un document qui montre simplement qu'il y a 2 index dans la collection qui est le champ _id et l'autre est le champ ID de l'employé. Le :1 indique que les valeurs de champ dans l'index sont créées par ordre croissant.

Comment supprimer des index : dropindex()

Supprimer un index dans MongoDB se fait en utilisant la méthode dropIndex.

L'exemple suivant montre comment cela peut être réalisé ;

Supprimer les index : dropindex()

db.Employee.dropIndex(Employeeid:1)

Explication du code :

  • La méthode dropIndex prend les valeurs de champ requises qui doivent être supprimées de l'index.

Si la commande est exécutée avec succès, la sortie suivante s'affichera :

Sortie :

Supprimer les index : dropindex()

  1. Le nIndexesWas : 3 indique le nombre de valeurs de champ qui figuraient dans les index avant l'exécution de la commande. N'oubliez pas que chaque collection possède le champ _id qui compte également comme valeur de champ pour l'index.
  2. 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’un coup dans la collection, on peut utiliser la commande dropIndexes.

L'exemple suivant montre comment cela peut être réalisé.

Supprimer les index : dropindex()

db.Employee.dropIndex()

Explication du code :

  • La méthode dropIndexes supprimera tous les index à l'exception de l'index _id.

Si la commande est exécutée avec succès, la sortie suivante s'affichera :

Sortie :

Supprimer les index : dropindex()

  1. Le nIndexesWas: 2 indique le nombre de valeurs de champ qui figuraient dans les index avant l'exécution de la commande.
  2. N'oubliez pas que chaque collection possède le champ _id qui compte également comme valeur de champ pour l'index et qui ne sera pas supprimé par MongoDB et c'est ce qu'indique ce message.
  3. La sortie ok: 1 spécifie que l'opération a réussi.

Résumé

  • La définition d'index est importante pour une recherche plus rapide et efficace des documents dans une collection.
  • Les index peuvent être créés à l'aide de la méthode createIndex. Les index peuvent être créés sur un seul champ ou sur plusieurs valeurs de champ.
  • Les index peuvent être trouvés à l'aide de la méthode getIndexes.
  • Les index peuvent être supprimés en utilisant dropIndex pour des index uniques ou dropIndexes pour supprimer tous les index.