mdbc/config.go
2022-02-23 16:59:45 +08:00

44 lines
1.1 KiB
Go

package mdbc
import (
"context"
"go.mongodb.org/mongo-driver/bson/bsoncodec"
"go.mongodb.org/mongo-driver/mongo/readpref"
)
var std *ClientInit
// Config MongoDB连接配置
type Config struct {
// URI 连接DSN 格式: protocol://username:password@host:port/auth_db
URI string `yaml:"uri"`
// DBName
DBName string `yaml:"db-name"`
// MinPoolSize 连接池最小 默认1个
MinPoolSize uint64 `yaml:"min-pool-size"`
// MaxPoolSize 连接池最大 默认32
MaxPoolSize uint64 `yaml:"max-pool-size"`
// ConnTimeout 连接超时时间 单位秒 默认10秒
ConnTimeout uint64 `yaml:"conn-timeout"`
// RegistryBuilder 注册bson文档的自定义解析器 详见当前目录 codec.go 其中定义了一系列的bson文档解析器
RegistryBuilder *bsoncodec.RegistryBuilder
// ReadPreference 读配置
ReadPreference *readpref.ReadPref
}
func (c *Config) Init(ctx context.Context) error {
var err error
c.RegistryBuilder = RegisterTimestampCodec(nil)
std, err = ConnInit(c)
if err != nil {
return err
}
return nil
}
func GetClient() *ClientInit {
return std
}