連接方式
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)