Les index MongoDB sont un excellent moyen d’optimiser et d’organiser vos bases de données, et ils sont relativement simples à écrire. Voici comment.

Comme dans toute base de données, les index sont des structures de données essentielles dans MongoDB. Ils facilitent l’interrogation des bases de données et vous permettent de stocker et d’organiser une partie de votre collection dans des champs uniques. Les index permettent également d’effectuer des requêtes de plage sans problème.

Si votre application utilise MongoDB, vous souhaitez tirer parti de la puissance des index pour rendre vos requêtes plus rapides et plus efficaces. Mais que sont les index dans MongoDB et comment les créer ?

Que sont les index dans MongoDB ?

Les index dans MongoDB vous permettent de hiérarchiser certains champs dans un document et de les transformer ultérieurement en paramètres de requête. Lors de la création d’une collection, MongoDB crée un index ID par défaut. Mais vous pouvez en ajouter d’autres si vous avez des besoins plus importants en matière de requêtes ou d’arrangement.

Les index uniques permettent également d’éviter les doublons lors de la saisie des données. Ils sont très utiles pour rejeter les entrées qui existent déjà dans la base de données. Vous pouvez donc utiliser l’indexation unique sur les noms d’utilisateur et les champs d’adresse électronique, par exemple.

Les index vous aident à saisir spécifiquement ce que vous voulez à l’aide du format de requête que vous avez défini, à la quantité requise, sans avoir à balayer toute une collection. Lorsque vous créez un index, vous pouvez spécifier comment vous souhaitez que vos données soient triées lorsque vous les interrogez.

Par exemple, si vous décidez de trier les points de données par leur date d’entrée sans utiliser d’index, vous fournirez généralement des critères de requête et un ordre de tri.

Supposons que vous souhaitiez classer les âges supérieurs à un certain nombre en fonction de leur date d’entrée décroissante. Votre requête ressemble généralement à ceci :

db.collectionName.find({âge : {$gt : 50}}).sort({date : -1})

Mais si vous aviez un index sur les dates d’entrée, vous n’auriez qu’à fournir les critères de la requête. En effet, vous auriez déjà trié la date de manière descendante lors de la création de l’index.

Dans ce cas, la requête ci-dessus devient :

db.collectionName.find({age : {$gt : 50}})

Comment créer un index dans MongoDB

Vous pouvez créer des index dans MongoDB en utilisant son interface shell intégrée. C’est donc ce que nous allons utiliser dans ce tutoriel.

Néanmoins, les index n’existent pas seuls. Vous devez avoir créé une base de données et une collection avant de pouvoir créer un index.

Comme nous l’avons mentionné précédemment, l’une des principales caractéristiques de l’indexation est qu’elle vous permet de spécifier des critères de tri lors de la création de l’index.

Par exemple, un index qui classe les âges dans un ordre inverse ressemble à ceci :

db.userCollection.createIndex({age : -1})

Le nombre entier négatif (-1) dans le code indique à MongoDB de classer l’âge dans un ordre inverse lorsque vous interrogez des données à l’aide de l’index d’âge. Ainsi, vous n’aurez peut-être pas besoin de spécifier un ordre de tri pendant les requêtes puisque l’index s’en charge déjà.

Pour créer un index du même champ dans l’ordre croissant, remplacez -1 par 1 :

db.userCollection.createIndex({age : 1})

Bien qu’il existe d’autres types d’index dans MongoDB, voici comment créer les formes simples et composées, car ce sont les plus utilisées.

Mais avant de poursuivre, assurez-vous d’avoir configuré un serveur MongoDB sur votre PC. Si vous l’avez déjà fait, ouvrez le shell MongoDB et suivez la procédure.

Créer un index unique dans MongoDB

L’indexation simple dans MongoDB est très simple. Pour commencer, sélectionnez une base de données qui contient déjà des collections.

Disons que notre base de données s’appelle MUO :

utiliser MUO

Une fois que vous avez choisi une base de données, utilisez la commande createIndex() dans le shell pour créer un index unique.

Par exemple, pour créer un index unique de nom d’utilisateur dans une collection et l’utiliser pour effectuer des requêtes en ordre inverse :

db.collectionName.createIndex({nom d’utilisateur : -1})

Indexation multiclé dans MongoDB

Les index multiclé sont très utiles pour indexer un champ dans un tableau de données complexe. Par exemple, une collection peut contenir des données complexes d’utilisateurs avec leurs informations dans un autre tableau. Par exemple, le nom, la taille et l’âge.

Vous pouvez créer un index multiclé sur la taille de chaque utilisateur dans ce tableau comme suit :

db.customers.createIndex({user.height : 1})

La hauteur dans le code ci-dessus est un sous-ensemble du champ utilisateur.

Création d’un index composé

Un index composé contient plus d’un index. Pour créer un index composé d’adresse et de type de produit sur une collection de clients, par exemple :

db.customer.createIndex({adresse : 1, produits : 1})

Comme vous n’avez pas fourni de nom lors de la création de l’index ci-dessus, MongoDB en crée un par défaut. Mais il sépare le nom de chaque index par un trait de soulignement. Il est donc moins lisible, surtout si vous avez plus de deux index dans un composé.

Pour spécifier un nom lors de la création d’un index composé :

db.customers.createIndex({location : 1, produits : 1, poids : -1}, {name : « myCompundIndex »})

Obtenir tous les index d’une collection

Pour afficher tous les index d’une collection :

db.collectionName.getIndexes()

Le code ci-dessus affiche tous les index d’une collection nommée.

Organisez votre base de données avec des index

L’indexation dans MongoDB réduit la latence d’exécution lors de l’exécution de requêtes concurrentes. De plus, ils vous aident à organiser votre base de données et à la rendre plus accessible. Comme vous l’avez vu, la création d’index dans MongoDB n’est pas complexe, après tout. Les exemples présentés ici sont suffisants pour vous permettre de commencer à créer des index. Néanmoins, pour voir vos index dans la pratique, vous devez savoir comment fonctionnent les requêtes dans MongoDB.