package common import ( "app.yhyue.com/moapp/jybase/mongodb" "context" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/util/gconv" //"workTasks/common/mongodb" ) type ( mgConf struct { Address string `json:"address"` Size int `json:"size"` DbName string `json:"dbName"` ReplSet string `json:"replSet"` UserName string `json:"userName"` Password string `json:"password"` } mgObj struct { mgMap map[string]*mongodb.MongodbSim } ) var ( MG = &mgObj{ mgMap: map[string]*mongodb.MongodbSim{}, } ) func init() { var ( ctx = context.Background() ) for key, val := range g.Cfg().MustGet(ctx, "mongodb").Map() { var cf mgConf if err := gconv.Struct(val, &cf); err != nil { g.Log().Errorf(ctx, "初始化mongodb %s出错", key) continue } mgo := &mongodb.MongodbSim{ MongodbAddr: cf.Address, Size: cf.Size, DbName: cf.DbName, ReplSet: cf.ReplSet, UserName: cf.UserName, Password: cf.Password, } mgo.InitPool() MG.mgMap[key] = mgo g.Log().Infof(ctx, "初始化 mongodb %s 成功", key) } } func (t *mgObj) DB(alias ...string) *mongodb.MongodbSim { if len(alias) != 0 { for _, s := range alias { if esObj, ok := t.mgMap[s]; ok { return esObj } } } return t.mgMap["default"] }