Sobes.tech
Junior — Middle

Tem experiência no uso de indexação no MongoDB para otimizar consultas?

sobes.tech IA

Resposta da IA

Sim, nos projetos em Go costuma-se usar MongoDB com índices para otimizar as consultas. Os índices no MongoDB permitem acelerar significativamente a busca e filtragem de dados, especialmente em coleções grandes.

Em Go, geralmente usa-se o driver oficial mongo-go-driver para trabalhar com MongoDB. Para usar a indexação, primeiro cria-se um índice no campo necessário e depois realiza-se consultas que utilizam esse índice.

Exemplo de criação de índice em 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 para ordenar por ascendente
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Índice criado:", indexName)
}

Após criar o índice, as consultas que filtram por fieldName serão mais rápidas.

A experiência com o uso de índices inclui entender quais campos indexar para melhorar o desempenho e monitorar o uso de índices usando o profiler do MongoDB.