|
@@ -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
|