MongoDB : créer des index avec la commande Create Index

Avec la commande MongoDB Create Index, vous pouvez créer un index afin de profiter d’une meilleure vue d’ensemble et de répondre aux requêtes plus facilement. Différents paramètres vous donnent ensuite la possibilité de moduler cet index.

MongoDB Create Index : qu’est-ce que c’est ?

Pour comprendre à quoi sert la commande MongoDB Create Index et pourquoi elle est importante si vous travaillez tous les jours avec un système de gestion de base de données, il convient de s’intéresser à la structure de MongoDB.

À la différence des systèmes relationnels tels que MySQL, cette solution NoSQL n’est pas basée sur des tables, mais plutôt sur des documents stockés dans des collections. Comme elle ne s’appuie pas sur un schéma, elle est évolutive et très flexible. Cette solution vous permet donc de créer d’immenses bases de données, de créer des collections et d’alimenter vos documents. Toutefois, si vous envoyez une requête de localisation pour des données spécifiques ou un ensemble de données en particulier, vous avez besoin d’ordre. Pour ce faire, il convient d’utiliser les index.

En plus de mettre de l’ordre dans une base de données, un index facilite également le traitement des requêtes par le système. Si vous possédez une immense collection comprenant plusieurs milliers de documents, non seulement les temps d’attente s’allongent, mais les résultats perdent eux aussi en clarté. Toutefois, en ajoutant des index à vos documents, vous contribuez à mieux classer ces derniers, ce qui vous permettra ensuite de les retrouver plus facilement. En effet, comme seule une partie des documents doit finalement être lue, cela améliore grandement l’efficacité de la recherche. Pour ce faire, essayez la commande MongoDB Create Index.

MongoDB Create Index : syntaxe

La commande MongoDB Create Index est constituée du nom de la collection à afficher, de la commande proprement dite, du critère relatif aux requêtes et d’un sens de comptage :

>db.COLLECTION_NAME.createIndex ( {KEY:1} )

« COLLECTION_NAME » correspond au nom de la collection dans laquelle vous souhaitez créer l’index. « createIndex » désigne la commande en elle-même, « KEY » fait référence au champ à l’intérieur de la collection et « 1 » vous permet d’indiquer que vous souhaitez effectuer le tri dans l’ordre croissant. Pour un tri par ordre décroissant, optez plutôt pour « -1 ».

MongoDB Create Index : exemple d’utilisation

Pour mieux comprendre le fonctionnement et l’utilité de la commande MongoDB Create Index, nous allons utiliser un exemple simple, qui se présente de la manière suivante :

>db.beispiel.createIndex ( {"title":1} )

Le résultat se présente comme suit :

{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter": 2,
"ok" : 1
}

La première ligne indique que la collection a été créée manuellement, à l’aide de la commande MongoDB Create Collection. La deuxième ligne précise le nombre d’index avant l’exécution de la commande. La troisième ligne affiche le nombre d’index après l’exécution de la commande, et la quatrième ligne confirme le bon déroulement de l’opération.

MongoDB Create Index : options

Pour optimiser la commande Create Index, vous pouvez faire appel à plusieurs options supplémentaires dans MongoDB ; il vous suffit de les placer dans les parenthèses, après l’indicateur « KEY ». Les options suivantes s’offrent à vous :

  • « background » : ce paramètre vous permet de créer un index en arrière-plan, et donc d’éviter que le processus de création ne perturbe le bon déroulement d’autres activités de la base de données. Cette option contient toujours une valeur booléenne qui correspond à « true » (vrai) ou « false » (faux), la valeur par défaut étant justement « false ».
  • « unique » : il s’agit également d’une valeur booléenne. Si elle correspond à « true », la commande Create Index crée un index unique, qui exclut les documents dont la valeur de clé (« KEY ») est déjà utilisée. Chaque valeur de clé n’apparaît donc qu’une seule fois. La valeur par défaut de l’option « unique » est également « false ».
  • « name » : avec cette option, vous pouvez donner à votre index le nom que vous souhaitez. Si vous décidez de ne pas utiliser ce paramètre, le système se charge alors de générer un nom.
  • « sparse » : pour que l’index ne prenne en compte que les documents avec un champ clairement défini, définissez la valeur de cette option sur « true ». Si cette méthode permet d’économiser de l’espace, elle peut également se montrer imprécise. Sa valeur par défaut correspond à « false ».
  • « expireAfterSeconds » : avec cette option, vous pouvez déterminer le temps pendant lequel MongoDB conserve vos documents dans une collection. Cette valeur s’indique en secondes.
  • « weights » : ce paramètre permet de déterminer l’importance d’un champ par rapport aux autres champs d’un même index. Cette valeur est comprise entre 1 et 99 999.
  • « default_language » : si vous souhaitez utiliser une autre langue que l’anglais pour votre commande MongoDB Create Index, vous pouvez choisir celle-ci grâce à l’option « default_language ».
  • « language_override » : cette option vous permet quant à elle de remplacer la langue utilisée par défaut.

MongoDB Drop Index : supprimer des index

Maintenant que vous savez créer un nouvel index à l’aide de la commande Create Index, nous allons vous montrer comment supprimer celui-ci. La commande MongoDB Drop Index a été spécialement prévue à cet effet. Deux possibilités s’offrent à vous : indiquez le fichier correspondant à l’index que vous souhaitez supprimer, ou le nom de l’index concerné directement.

La syntaxe de la première méthode se présente comme suit :

>db.COLLECTION_NAME.dropIndex ( {KEY:1} )

Et la syntaxe de la deuxième méthode se présente comme suit :

dropIndex ("Name_des_Indexes")