Golang操作MongoDB(1) 连接池

连接方式

mongo-go-driver

// pool 连接池模式
func ConnectToDB(uri, name string, timeout time.Duration, num uint64) (*mongo.Database, error)  {
	// 设置连接超时时间
	ctx, cancel := context.WithTimeout(context.Background(), timeout)
	defer cancel()
	// 通过传进来的uri连接相关的配置
	o := options.Client().ApplyURI(uri)
	// 设置最大连接数 - 默认是100 ,不设置就是最大 max 64
	o.SetMaxPoolSize(num)
	// 发起链接
	client, err := mongo.Connect(ctx, o)
	if err != nil {
		log.Fatal(err)
		return nil, err
	}
	// 判断服务是不是可用
	if err = client.Ping(context.Background(), readpref.Primary()); err != nil {
		log.Fatal(err)
		return nil, err
	}
	// 返回 client
	return client.Database(name), nil
}

重点(会考,划重点) ` 如 "用户名:密码@用户名:端口"` 
toDB, err := db.ConnectToDB("mongodb://root:root123@localhost:27018", "user1",time.Duration(2),50)


posted @ 2020-04-11 13:29  五个平均值  阅读(2458)  评论(0编辑  收藏  举报