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

Table des matières:

Anonim

Les index sont très importants dans n'importe quelle base de données, et avec MongoDB ce n'est pas différent. Avec l'utilisation des index, l'exécution de requêtes dans MongoDB devient plus efficace.

Si vous aviez une collection avec des milliers de documents sans index et que vous interrogiez pour trouver certains documents, alors dans ce cas MongoDB aurait besoin de 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 des données de la collection. Étant donné que les données sont partielles, il devient plus facile de lire ces données. Cet ensemble partiel stocke la valeur d'un champ spécifique ou d'un ensemble de champs triés par la valeur du champ.

Dans ce tutoriel, vous apprendrez -

  • Comprendre l'impact des index
  • Comment créer des index: createIndex ()
  • Comment trouver des index: getindexes ()
  • Comment supprimer des index: dropindex ()

Comprendre l'impact des index

Maintenant, même si à partir de l'introduction, nous avons vu que les index sont bons pour les requêtes, mais 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 fréquentes sont effectuées sur des documents, les index devraient être modifiés aussi souvent, ce qui ne serait qu'une surcharge pour la collection.

L'exemple ci-dessous montre un exemple de quelles valeurs de champ 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, Employeeid "1" et 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é.

Comment créer des index: createIndex ()

La création d'un index dans MongoDB se fait en utilisant la méthode " createIndex ".

L'exemple suivant montre comment ajouter un index à la collection. Supposons que nous ayons notre même collection Employee qui a les noms de champ "Employeeid" et "EmployeeName".

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

Explication du code:

  1. La méthode createIndex 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», elles 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 sera affichée:

Production:

  1. Le numIndexesBefore: 1 indique le nombre de valeurs de champ (les champs réels de la collection) qui se trouvaient dans les index avant l'exécution de la commande. N'oubliez pas que chaque collection a le champ _id qui compte également comme une valeur de champ dans 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 étaient présentes 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 fait;

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

Explication du code:

  1. La méthode createIndex prend désormais en compte plusieurs valeurs de champ qui entraîneront 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 dans l'ordre croissant.

Comment trouver des index: getindexes ()

La recherche d'un index dans MongoDB se fait en utilisant la méthode "getIndexes" .

L'exemple suivant montre comment cela peut être fait;

db.Employee.getIndexes()

Explication du code:

  1. 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 sera affichée:

Production:

  1. 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 Employee id. Le: 1 indique que les valeurs de champ de l'index sont créées dans l'ordre croissant.

Comment supprimer des index: dropindex ()

La suppression d'un index dans MongoDB est effectuée à l'aide de la méthode dropIndex.

L'exemple suivant montre comment cela peut être fait;

db.Employee.dropIndex(Employeeid:1)

Explication du code:

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

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

Production:

  1. Le nIndexesWas: 3 indique le nombre de valeurs de champ qui étaient présentes dans les index avant l'exécution de la commande. N'oubliez pas que chaque collection a le champ _id qui compte également comme une valeur de champ dans l'index.
  2. La sortie ok: 1 indique que l'opération a réussi et le champ "Employeeid" est supprimé de l'index.

Pour supprimer tous les index à la fois dans la collection, on peut utiliser la commande dropIndexes.

L'exemple suivant montre comment cela peut être fait.

db.Employee.dropIndex()

Explication du code:

  1. 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 sera affichée:

Production:

  1. Le nIndexesWas: 2 indique le nombre de valeurs de champ qui étaient présentes dans les index avant l'exécution de la commande.
  2. Rappelez-vous à nouveau que chaque collection a le champ _id qui compte également comme une valeur de champ dans l'index, et qui ne sera pas supprimé par MongoDB et c'est ce que ce message indique.
  3. La sortie ok: 1 indique 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 les index uniques ou dropIndexes pour supprimer tous les index.