私は MongoDB GO Driver を使用しています。まだ手動で接続プーリングを設定しているかどうか、またはすでに箱から出しておくのであれば、必ず確かにありません。たとえば、コンテキスト(タイムアウト付き)が正確に何を意味するのかという意味ではありません。
私のコードは次のようになります。
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
}
_