Types d'index (index unique, composite, textuel, géospatial)

MongoDB propose différents types d'index pour optimiser les requêtes en fonction du type de données ou de la nature des recherches.

Index unique

Un index unique empêche l’insertion de documents avec des valeurs dupliquées dans le champ indexé. Il est souvent utilisé pour les champs comme les emails ou les identifiants uniques.

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

Index composite

Un index composite est créé sur plusieurs champs pour accélérer les requêtes qui filtrent sur plusieurs critères.

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

Cela permet d’accélérer les requêtes qui filtrent à la fois par nom et par ville.

Index textuel

Un index textuel est utilisé pour les recherches en texte intégral. Il permet de rechercher des mots ou des phrases dans des documents.

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

Une fois cet index textuel créé, vous pouvez effectuer des recherches comme suit :

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

Index géospatial

MongoDB prend en charge les index géospatiaux pour les recherches sur des données de localisation, comme des coordonnées GPS.

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

Cela permet d’effectuer des requêtes basées sur la proximité géographique, comme la recherche de lieux proches d’un point donné.

Exemple de requête géospatiale :

db.lieux.find({
  localisation: {
    $near: {
      $geometry: {
        type: "Point",
        coordinates: [48.8566, 2.3522]
      },
      $maxDistance: 5000
    }
  }
})

Cela recherche tous les lieux à moins de 5 km des coordonnées de Paris (48.8566, 2.3522).

Last updated