package utils_mongo import ( "context" "time" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) type ClientStruct struct { Uri string MaxPoolSize uint64 MinPoolSize uint64 MaxConnIdleTime time.Duration ConnectTimeout time.Duration SocketTimeout time.Duration } func NewMongoClient(ctx context.Context, config *ClientStruct) (*mongo.Client, error) { clientOptions := options.Client().ApplyURI(config.Uri). SetMaxPoolSize(config.MaxPoolSize). // 最大连接数 SetMinPoolSize(config.MinPoolSize). // 最小连接数 SetMaxConnIdleTime(config.MaxConnIdleTime). // 连接最大空闲时间 SetConnectTimeout(config.ConnectTimeout). // 连接超时 SetSocketTimeout(config.ConnectTimeout) // 操作超时 return mongo.Connect(ctx, clientOptions) }