Sobes.tech
Junior — Middle

Máte zkušenosti s používáním indexování v MongoDB k optimalizaci dotazů?

sobes.tech AI

Odpověď od AI

Ano, v projektech v Go se často používají indexy MongoDB k optimalizaci dotazů. Indexy v MongoDB výrazně urychlují hledání a filtrování dat, zejména u velkých kolekcí.

V Go se obvykle používá oficiální ovladač mongo-go-driver pro práci s MongoDB. Pro použití indexování se nejprve vytvoří index na požadované pole a poté se provádějí dotazy, které tento index využívají.

Příklad vytvoření indexu v 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 pro vzestupné řazení
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Vytvořen index:", indexName)
}

Po vytvoření indexu budou dotazy filtrující podle fieldName probíhat rychleji.

Zkušenosti s používáním indexů zahrnují pochopení, která pole je třeba indexovat ke zlepšení výkonu, a sledování využití indexů pomocí profileru MongoDB.