Roc 9 месяцев назад
Родитель
Сommit
4fccf7c21c
1 измененных файлов с 27 добавлено и 18 удалено
  1. 27 18
      utils/mgodb/mgo_config.go

+ 27 - 18
utils/mgodb/mgo_config.go

@@ -25,12 +25,14 @@ var (
 //}
 
 type MgoConfig struct {
-	Host       string `json:"host"`
-	Port       string `json:"port"`
-	Username   string `json:"username"`
-	Password   string `json:"password"`
-	AuthSource string `json:"authSource"`
-	Database   string `json:"database"`
+	Host          string `json:"host"`
+	Url           string `json:"url"`
+	Port          string `json:"port"`
+	Username      string `json:"username"`
+	Password      string `json:"password"`
+	AuthSource    string `json:"authSource"`
+	AuthMechanism string `json:"auth_mechanism"`
+	Database      string `json:"database"`
 }
 
 // MgoNewClient
@@ -83,21 +85,28 @@ func MgoNewClient(mgoConfig MgoConfig) *qmgo.Client {
 
 	//mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
 
-	var mongoUrl string
-	if mgoConfig.Password != "" {
-		mongoUrl = "mongodb://" + mgoConfig.Username + ":" + mgoConfig.Password + "@" +
-			mgoConfig.Host + ":" + mgoConfig.Port
-
-		if mgoConfig.AuthSource != `` {
-			mongoUrl += mongoUrl + "?&authSource=" + mgoConfig.AuthSource
-		}
-	} else {
-		mongoUrl = "mongodb://" + mgoConfig.Host + ":" + mgoConfig.Port
-	}
+	//var mongoUrl string
+	//if mgoConfig.Password != "" {
+	//	mongoUrl = "mongodb://" + mgoConfig.Username + ":" + mgoConfig.Password + "@" +
+	//		mgoConfig.Host + ":" + mgoConfig.Port
+	//
+	//	if mgoConfig.AuthSource != `` {
+	//		mongoUrl += mongoUrl + "?&authSource=" + mgoConfig.AuthSource
+	//	}
+	//} else {
+	//	mongoUrl = "mongodb://" + mgoConfig.Host + ":" + mgoConfig.Port
+	//}
 
 	// 创建一个数据库链接
 	client, err := qmgo.NewClient(ctx, &qmgo.Config{
-		Uri:              mongoUrl,
+		Uri: mgoConfig.Url,
+		Auth: &qmgo.Credential{
+			AuthMechanism: mgoConfig.AuthMechanism,
+			AuthSource:    mgoConfig.AuthSource,
+			Username:      mgoConfig.Username,
+			Password:      mgoConfig.Password,
+			//PasswordSet:   false,
+		},
 		Database:         mgoConfig.Database,
 		ConnectTimeoutMS: &ConnectTimeoutMS,
 		SocketTimeoutMS:  &SocketTimeoutMS,