1 Star 0 Fork 0

z1gotool/gorm2mongo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
z1mongo.go 1.24 KB
一键复制 编辑 原始数据 按行查看 历史
qinxuanwu 提交于 2023-07-18 14:54 . h
package z1mongo
import (
"context"
"time"
"gitee.com/z1gotool/z1err"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
)
var DB *mongo.Database
// connetc pool
// url mongodb://localhost:27017, mongodb://username:password@localhost:27017
func Connect(uri, dbName string, timeout, clientMaxNum uint64) (db *mongo.Database, err error) {
defer z1err.Handle(&err)
// https://zhuanlan.zhihu.com/p/613226112
// 设置连接超时时间
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout*uint64(time.Second)))
defer cancel()
// 通过传进来的uri连接相关的配置
opts := options.Client().ApplyURI(uri)
// 设置最大连接数 - 默认是100 ,不设置就是最大 max 64
opts.SetMaxPoolSize(clientMaxNum)
// 发起链接
client, err := mongo.Connect(ctx, opts)
z1err.Check(err)
// 判断服务是不是可用
err = client.Ping(context.Background(), readpref.Primary())
z1err.Check(err)
// 返回 client
db = client.Database(dbName)
DB = db
return
}
func Disconnect(db *mongo.Database) (err error) {
defer z1err.Handle(&err)
if db != nil {
err = db.Client().Disconnect(context.Background())
z1err.Check(err)
}
return
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/z1gotool/gorm2mongo.git
git@gitee.com:z1gotool/gorm2mongo.git
z1gotool
gorm2mongo
gorm2mongo
v1.3.2

搜索帮助