Parcourir la source

增加公用方法

zhangjinkun il y a 9 ans
Parent
commit
e9ab46dfa5

+ 1 - 1
common/src/qfw/util/elastic/elasticutil.go

@@ -189,7 +189,7 @@ func Get(index, itype, query string) *[]map[string]interface{} {
 }
 
 func GetNoLimit(index, itype, query string) *[]map[string]interface{} {
-	log.Println("query  -- ", query)
+	//log.Println("query  -- ", query)
 	client := GetEsConn()
 	defer DestoryEsConn(client)
 	var res []map[string]interface{}

+ 36 - 0
common/src/qfw/util/mongodb/mongodbutil.go

@@ -129,6 +129,42 @@ func Update(c string, query interface{}, set interface{}, upsert bool, multi boo
 	return b
 }
 
+//批量修改
+func UpdateBulk(c string, querys []interface{}, sets []interface{}, upsert bool, multi bool) {
+	sess := GetMgoConn()
+	if sess != nil {
+		defer func() {
+			if r := recover(); r != nil {
+				log.Println("[E]", r)
+				for skip := 1; ; skip++ {
+					_, file, line, ok := runtime.Caller(skip)
+					if !ok {
+						break
+					}
+					go log.Printf("%v,%v\n", file, line)
+				}
+			}
+		}()
+		defer DestoryMongoConn(sess)
+		coll := sess.DB(DB).C(c)
+		for k, set := range sets {
+			var err error
+			if upsert {
+				_, err = coll.Upsert(ObjToM(querys[k]), ObjToM(set))
+			} else {
+				if multi {
+					_, err = coll.UpdateAll(ObjToM(querys[k]), ObjToM(set))
+				} else {
+					err = coll.Update(ObjToM(querys[k]), ObjToM(set))
+				}
+			}
+			if err != nil {
+				log.Println("updateBulkError", err.Error())
+			}
+		}
+	}
+}
+
 func DelById(c, id string) bool {
 	sess := GetMgoConn()
 	b := true

+ 17 - 0
common/src/qfw/util/mongodb/mongodbutil_test.go

@@ -120,6 +120,23 @@ func Test_aa1(t *testing.T) {
 	}, false, false)
 
 }
+func Test_updateBulk(t *testing.T) {
+	InitMongodbPool(1, "192.168.3.18:27080", "spider")
+	updates := []interface{}{}
+	update := map[string]interface{}{}
+	update["$set"] = map[string]interface{}{"regno": "91530112075274938P", "test": "test"}
+	updates = append(updates, update)
+	update["$set"] = map[string]interface{}{"regno": "915301003518493994", "test": "test"}
+	updates = append(updates, update)
+
+	querys := []interface{}{}
+	query := map[string]interface{}{}
+	query["regno"] = "91530112075274938P"
+	querys = append(querys, query)
+	query["regno"] = "915301003518493994"
+	querys = append(querys, query)
+	UpdateBulk("entnames", querys, updates, false, false)
+}
 
 //检测query正确性
 func Test_nextQuery(t *testing.T) {