fix: mogodb url connent

pull/1232/head
dong 2 years ago
parent 8e6430625c
commit c2b0b01c78

@ -163,6 +163,9 @@ func checkMongo() error {
client.Disconnect(context.TODO()) client.Disconnect(context.TODO())
} }
}() }()
if config.Config.Mongo.Uri != "" {
uri = config.Config.Mongo.Uri
} else {
mongodbHosts := "" mongodbHosts := ""
for i, v := range config.Config.Mongo.Address { for i, v := range config.Config.Mongo.Address {
if i == len(config.Config.Mongo.Address)-1 { if i == len(config.Config.Mongo.Address)-1 {
@ -171,13 +174,23 @@ func checkMongo() error {
mongodbHosts += v + "," mongodbHosts += v + ","
} }
} }
if config.Config.Mongo.Password != "" && config.Config.Mongo.Username != "" {
uri = fmt.Sprintf("mongodb://%s:%s@%s/%s?maxPoolSize=%d&authSource=admin",
config.Config.Mongo.Username, config.Config.Mongo.Password, mongodbHosts,
config.Config.Mongo.Database, config.Config.Mongo.MaxPoolSize)
} else {
uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d&authSource=admin",
mongodbHosts, config.Config.Mongo.Database,
config.Config.Mongo.MaxPoolSize)
}
}
client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI( client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(
fmt.Sprintf("mongodb://%v:%v@%v/?authSource=admin", fmt.Sprintf("mongodb://%v:%v@%v/?authSource=admin",
config.Config.Mongo.Username, config.Config.Mongo.Password, mongodbHosts))) config.Config.Mongo.Username, config.Config.Mongo.Password, mongodbHosts)))
if err != nil { if err != nil {
return errs.Wrap(err) return errs.Wrap(err)
} else { } else {
err = client.Ping(context.TODO(), &readpref.ReadPref{}) err = client.Ping(context.TODO(), nil)
if err != nil { if err != nil {
return errs.Wrap(err) return errs.Wrap(err)
} }

Loading…
Cancel
Save