Sobes.tech
Junior — Middle

Da li imate iskustva u korišćenju indeksiranja u MongoDB za optimizaciju upita?

sobes.tech АИ

Одговор од АИ

Da, u Go projektima često se koristi MongoDB sa indeksima za optimizaciju upita. Indeksi u MongoDB omogućavaju značajno ubrzanje pretrage i filtriranja podataka, posebno na velikim kolekcijama.

U Go-u, obično se koristi zvanični drajver mongo-go-driver za rad sa MongoDB-jem. Da biste koristili indeksiranje, prvo se kreira indeks na potrebnom polju, a zatim se izvršavaju upiti koji koriste taj indeks.

Primer kreiranja indeksa u Go-u:

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 za rastući red
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Kreiran indeks:", indexName)
}

Nakon kreiranja indeksa, upiti koji filtriraju po fieldName će se izvršavati brže.

Iskustvo sa korišćenjem indeksa uključuje razumevanje kojih polja treba indeksirati za poboljšanje performansi i praćenje korišćenja indeksa pomoću profiler-a MongoDB-a.