Sobes.tech
Junior — Middle

Avez-vous de l'expérience dans l'utilisation de l'indexation dans MongoDB pour optimiser les requêtes?

sobes.tech IA

Réponse de l'IA

Oui, dans les projets en Go, MongoDB est souvent utilisé avec des index pour optimiser les requêtes. Les index dans MongoDB permettent d’accélérer considérablement la recherche et le filtrage des données, en particulier sur de grandes collections.

En Go, on utilise généralement le pilote officiel mongo-go-driver pour travailler avec MongoDB. Pour utiliser l’indexation, on crée d’abord un index sur le champ nécessaire, puis on effectue des requêtes qui utilisent cet index.

Exemple de création d’un index en Go :

import (
    "context"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "log"
)

func createIndex(collection *mongo.Collection) {
    indexModel := mongo.IndexModel{
        Keys: bson.D{{Key: "fieldName", Value: 1}}, // 1 pour trier par ordre croissant
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Index créé :", indexName)
}

Après la création de l’index, les requêtes filtrant par fieldName seront plus rapides.

L’expérience d’utilisation des index inclut la compréhension des champs à indexer pour améliorer la performance et la surveillance de l’utilisation des index via le profileur MongoDB.