Création et gestion des index

6.2. Création et gestion des index

MongoDB permet de créer différents types d'index adaptés aux besoins de vos applications. Les commandes suivantes montrent comment créer, lister et supprimer des index dans une collection.

Création d'un index

Pour créer un index sur un champ particulier, utilisez la commande createIndex() :

db.clients.createIndex({ "nom": 1 })

L'option 1 indique un tri croissant sur le champ "nom". Utilisez -1 pour un tri décroissant.

Liste des index

Pour voir tous les index d'une collection, utilisez la commande getIndexes() :

db.clients.getIndexes()

Suppression d'un index

Pour supprimer un index, utilisez la commande dropIndex() :

db.clients.dropIndex({ "nom": 1 })

Cette commande supprime l'index sur le champ "nom".

6.3. Types d'index

MongoDB prend en charge plusieurs types d'index, chacun ayant un usage spécifique en fonction des besoins des requêtes et des données.

Index unique

Un index unique garantit que chaque document dans une collection a une valeur unique pour le champ indexé, similaire à une contrainte d'unicité dans une base de données relationnelle.

db.clients.createIndex({ "email": 1 }, { unique: true })

Cet index empêche l'insertion de plusieurs documents avec la même adresse e-mail.

Index composé

Un index composé est créé sur plusieurs champs. Cela permet d'optimiser les requêtes qui filtrent sur plusieurs critères.

db.clients.createIndex({ "nom": 1, "age": -1 })

Cet index aide à optimiser les requêtes qui filtrent à la fois par nom et par âge, en triant d'abord par nom (ordre croissant), puis par âge (ordre décroissant).

Index textuel

Les index textuels permettent des recherches en texte intégral sur des champs contenant des données textuelles. Ils sont utiles pour les applications qui nécessitent des fonctionnalités de recherche avancée.

db.articles.createIndex({ "contenu": "text" })

Cela permet d'effectuer des recherches sur les mots dans le champ "contenu". Par exemple, pour rechercher des documents contenant "MongoDB" :

db.articles.find({ $text: { $search: "MongoDB" } })

Index géospatial

Les index géospatiaux sont utilisés pour les données de localisation, permettant des requêtes basées sur des distances ou des coordonnées géographiques.

db.lieux.createIndex({ "location": "2dsphere" })

Cela permet de rechercher des points géographiques proches d'une certaine localisation.

Index sparse (parcimonieux)

Un index sparse ne répertorie que les documents qui contiennent le champ indexé. Cela permet d'économiser de l'espace et d'améliorer les performances pour les champs qui ne sont pas présents dans tous les documents.

db.clients.createIndex({ "email": 1 }, { sparse: true })

Cela signifie que seuls les documents ayant un champ "email" seront inclus dans l'index.

Last updated