zhangjinkun 1 year ago
parent
commit
e2ef72e18b
1 changed files with 25 additions and 23 deletions
  1. 25 23
      mongodb/mongodb.go

+ 25 - 23
mongodb/mongodb.go

@@ -91,7 +91,6 @@ func (b *Bluk) Run() (*mongo.BulkWriteResult, error) {
 	return b.ms.M.C.Database(b.ms.db).Collection(b.ms.coll).BulkWrite(b.ms.M.Ctx, b.writes)
 	return b.ms.M.C.Database(b.ms.db).Collection(b.ms.coll).BulkWrite(b.ms.M.Ctx, b.writes)
 }
 }
 
 
-//
 type MgoIter struct {
 type MgoIter struct {
 	Cursor *mongo.Cursor
 	Cursor *mongo.Cursor
 	Ctx    context.Context
 	Ctx    context.Context
@@ -138,7 +137,6 @@ func (mt *MgoIter) Next(result interface{}) bool {
 	}
 	}
 }
 }
 
 
-//
 type MgoSess struct {
 type MgoSess struct {
 	db     string
 	db     string
 	coll   string
 	coll   string
@@ -314,6 +312,7 @@ type MongodbSim struct {
 	UserName string
 	UserName string
 	Password string
 	Password string
 	ReplSet  string
 	ReplSet  string
+	Direct   bool
 }
 }
 
 
 func (m *MongodbSim) GetMgoConn() *MgoSess {
 func (m *MongodbSim) GetMgoConn() *MgoSess {
@@ -358,6 +357,9 @@ func (m *MongodbSim) InitPool() {
 		opts.SetReplicaSet(m.ReplSet)
 		opts.SetReplicaSet(m.ReplSet)
 		opts.SetDirect(false)
 		opts.SetDirect(false)
 	}
 	}
+	if m.Direct {
+		opts.SetDirect(true)
+	}
 	m.pool = make(chan bool, m.Size)
 	m.pool = make(chan bool, m.Size)
 	opts.SetMaxConnIdleTime(2 * time.Hour)
 	opts.SetMaxConnIdleTime(2 * time.Hour)
 	m.Ctx, _ = context.WithTimeout(context.Background(), 99999*time.Hour)
 	m.Ctx, _ = context.WithTimeout(context.Background(), 99999*time.Hour)
@@ -377,7 +379,7 @@ func (m *MongodbSim) Close() {
 	<-m.pool
 	<-m.pool
 }
 }
 
 
-//新建表并生成索引
+// 新建表并生成索引
 func (m *MongodbSim) CreateIndex(c string, models []mongo.IndexModel) bool {
 func (m *MongodbSim) CreateIndex(c string, models []mongo.IndexModel) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -408,7 +410,7 @@ func (m *MongodbSim) Save(c string, doc interface{}) string {
 	return id.Hex()
 	return id.Hex()
 }
 }
 
 
-//原_id不变
+// 原_id不变
 func (m *MongodbSim) SaveByOriID(c string, doc interface{}) bool {
 func (m *MongodbSim) SaveByOriID(c string, doc interface{}) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -422,7 +424,7 @@ func (m *MongodbSim) SaveByOriID(c string, doc interface{}) bool {
 	return true
 	return true
 }
 }
 
 
-//批量插入
+// 批量插入
 func (m *MongodbSim) SaveBulk(c string, doc ...map[string]interface{}) bool {
 func (m *MongodbSim) SaveBulk(c string, doc ...map[string]interface{}) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -446,7 +448,7 @@ func (m *MongodbSim) SaveBulk(c string, doc ...map[string]interface{}) bool {
 	return true
 	return true
 }
 }
 
 
-//批量插入
+// 批量插入
 func (m *MongodbSim) SaveBulkInterface(c string, doc ...interface{}) bool {
 func (m *MongodbSim) SaveBulkInterface(c string, doc ...interface{}) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -470,13 +472,13 @@ func (m *MongodbSim) SaveBulkInterface(c string, doc ...interface{}) bool {
 	return true
 	return true
 }
 }
 
 
-//按条件统计
+// 按条件统计
 func (m *MongodbSim) Count(c string, q interface{}) int {
 func (m *MongodbSim) Count(c string, q interface{}) int {
 	r, _ := m.CountByErr(c, q)
 	r, _ := m.CountByErr(c, q)
 	return r
 	return r
 }
 }
 
 
-//统计
+// 统计
 func (m *MongodbSim) CountByErr(c string, q interface{}) (int, error) {
 func (m *MongodbSim) CountByErr(c string, q interface{}) (int, error) {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -496,7 +498,7 @@ func (m *MongodbSim) CountByErr(c string, q interface{}) (int, error) {
 	}
 	}
 }
 }
 
 
-//按条件删除
+// 按条件删除
 func (m *MongodbSim) Delete(c string, q interface{}) int64 {
 func (m *MongodbSim) Delete(c string, q interface{}) int64 {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -508,7 +510,7 @@ func (m *MongodbSim) Delete(c string, q interface{}) int64 {
 	return res.DeletedCount
 	return res.DeletedCount
 }
 }
 
 
-//删除对象
+// 删除对象
 func (m *MongodbSim) Del(c string, q interface{}) bool {
 func (m *MongodbSim) Del(c string, q interface{}) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -521,7 +523,7 @@ func (m *MongodbSim) Del(c string, q interface{}) bool {
 	return true
 	return true
 }
 }
 
 
-//按条件更新
+// 按条件更新
 func (m *MongodbSim) Update(c string, q, u interface{}, upsert bool, multi bool) bool {
 func (m *MongodbSim) Update(c string, q, u interface{}, upsert bool, multi bool) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -565,7 +567,7 @@ func (m *MongodbSim) UpdateById(c string, id interface{}, set interface{}) bool
 	return true
 	return true
 }
 }
 
 
-//批量更新
+// 批量更新
 func (m *MongodbSim) UpdateBulkAll(db, c string, doc ...[]map[string]interface{}) bool {
 func (m *MongodbSim) UpdateBulkAll(db, c string, doc ...[]map[string]interface{}) bool {
 	return m.NewUpdateBulk(db, c, false, false, doc...)
 	return m.NewUpdateBulk(db, c, false, false, doc...)
 }
 }
@@ -574,17 +576,17 @@ func (m *MongodbSim) UpdateBulk(c string, doc ...[]map[string]interface{}) bool
 	return m.UpdateBulkAll(m.DbName, c, doc...)
 	return m.UpdateBulkAll(m.DbName, c, doc...)
 }
 }
 
 
-//批量插入
+// 批量插入
 func (m *MongodbSim) UpSertBulk(c string, doc ...[]map[string]interface{}) bool {
 func (m *MongodbSim) UpSertBulk(c string, doc ...[]map[string]interface{}) bool {
 	return m.NewUpdateBulk(m.DbName, c, true, false, doc...)
 	return m.NewUpdateBulk(m.DbName, c, true, false, doc...)
 }
 }
 
 
-//批量插入
+// 批量插入
 func (m *MongodbSim) UpSertMultiBulk(c string, upsert, multi bool, doc ...[]map[string]interface{}) bool {
 func (m *MongodbSim) UpSertMultiBulk(c string, upsert, multi bool, doc ...[]map[string]interface{}) bool {
 	return m.NewUpdateBulk(m.DbName, c, upsert, multi, doc...)
 	return m.NewUpdateBulk(m.DbName, c, upsert, multi, doc...)
 }
 }
 
 
-//批量插入
+// 批量插入
 func (m *MongodbSim) NewUpdateBulk(db, c string, upsert, multi bool, doc ...[]map[string]interface{}) bool {
 func (m *MongodbSim) NewUpdateBulk(db, c string, upsert, multi bool, doc ...[]map[string]interface{}) bool {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -624,12 +626,12 @@ func (m *MongodbSim) NewUpdateBulk(db, c string, upsert, multi bool, doc ...[]ma
 	return true
 	return true
 }
 }
 
 
-//查询单条对象
+// 查询单条对象
 func (m *MongodbSim) FindOne(c string, query interface{}) (*map[string]interface{}, bool) {
 func (m *MongodbSim) FindOne(c string, query interface{}) (*map[string]interface{}, bool) {
 	return m.FindOneByField(c, query, nil)
 	return m.FindOneByField(c, query, nil)
 }
 }
 
 
-//查询单条对象
+// 查询单条对象
 func (m *MongodbSim) FindOneByField(c string, query interface{}, fields interface{}) (*map[string]interface{}, bool) {
 func (m *MongodbSim) FindOneByField(c string, query interface{}, fields interface{}) (*map[string]interface{}, bool) {
 	defer catch()
 	defer catch()
 	res, ok := m.Find(c, query, nil, fields, true, -1, -1)
 	res, ok := m.Find(c, query, nil, fields, true, -1, -1)
@@ -639,7 +641,7 @@ func (m *MongodbSim) FindOneByField(c string, query interface{}, fields interfac
 	return nil, ok
 	return nil, ok
 }
 }
 
 
-//查询单条对象
+// 查询单条对象
 func (m *MongodbSim) FindById(c string, query string, fields interface{}) (*map[string]interface{}, bool) {
 func (m *MongodbSim) FindById(c string, query string, fields interface{}) (*map[string]interface{}, bool) {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -659,7 +661,7 @@ func (m *MongodbSim) FindById(c string, query string, fields interface{}) (*map[
 	return &res, true
 	return &res, true
 }
 }
 
 
-//底层查询方法
+// 底层查询方法
 func (m *MongodbSim) Find(c string, query interface{}, order interface{}, fields interface{}, single bool, start int, limit int) (*[]map[string]interface{}, bool) {
 func (m *MongodbSim) Find(c string, query interface{}, order interface{}, fields interface{}, single bool, start int, limit int) (*[]map[string]interface{}, bool) {
 	defer catch()
 	defer catch()
 	m.Open()
 	m.Open()
@@ -698,7 +700,7 @@ func ObjToM(query interface{}) *bson.M {
 	return ObjToMQ(query, true)
 	return ObjToMQ(query, true)
 }
 }
 
 
-//obj(string,M)转M,查询用到
+// obj(string,M)转M,查询用到
 func ObjToMQ(query interface{}, isQuery bool) *bson.M {
 func ObjToMQ(query interface{}, isQuery bool) *bson.M {
 	data := make(bson.M)
 	data := make(bson.M)
 	defer catch()
 	defer catch()
@@ -762,7 +764,7 @@ func intAllDef(num interface{}, defaultNum int) int {
 	}
 	}
 }
 }
 
 
-//出错拦截
+// 出错拦截
 func catch() {
 func catch() {
 	if r := recover(); r != nil {
 	if r := recover(); r != nil {
 		log.Println(r)
 		log.Println(r)
@@ -776,7 +778,7 @@ func catch() {
 	}
 	}
 }
 }
 
 
-//根据bsonID转string
+// 根据bsonID转string
 func BsonIdToSId(uid interface{}) string {
 func BsonIdToSId(uid interface{}) string {
 	if uid == nil {
 	if uid == nil {
 		return ""
 		return ""
@@ -806,7 +808,7 @@ func ToObjectIds(ids []string) []primitive.ObjectID {
 	return _ids
 	return _ids
 }
 }
 
 
-//自动添加更新时间
+// 自动添加更新时间
 func autoUpdateTime(db, coll string, ue *bson.M) {
 func autoUpdateTime(db, coll string, ue *bson.M) {
 	if coll == "user" {
 	if coll == "user" {
 		set := ObjToM((*ue)["$set"])
 		set := ObjToM((*ue)["$set"])