Я использую MongoDB Go Driver на моем сервере Go (1.11), который работает на App Engine Google Cloud. Я не совсем уверен, нужно ли мне вручную настраивать пул соединений или об этом уже позаботились прямо из коробки. Например, я не совсем уверен, что именно означает контекст (с тайм-аутом).
Мой код выглядит так:
package tools
import (
"context"
"time"
"valuation-app/settings"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
// ConnectToDB starts a new database connection and returns a reference to it
func ConnectToDB() (*mongo.Database, error) {
settings := settings.Get().Database
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
options := options.Client().ApplyURI(settings.URI)
options.SetMaxPoolSize(10)
client, err := mongo.Connect(ctx, options)
if err != nil {
return nil, err
}
return client.Database(settings.DatabaseName), nil
}