小编Pru*_*ser的帖子

使用 MongoDB Go Driver,如何设置连接池?

我在运行在 Google Cloud 的 App Engine 上的 Go (1.11) 服务器中使用了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
}
Run Code Online (Sandbox Code Playgroud)

database-connection connection-pooling go mongodb

12
推荐指数
1
解决办法
4602
查看次数