// 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)