|
@@ -2,12 +2,12 @@ package mongodb
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
- "strings"
|
|
|
mgo "gopkg.in/mgo.v2"
|
|
|
+ . "gopkg.in/mgo.v2/bson"
|
|
|
"log"
|
|
|
- "time"
|
|
|
"qfw/util"
|
|
|
- . "gopkg.in/mgo.v2/bson"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
type MongodbSim struct {
|
|
@@ -94,7 +94,7 @@ func (m *MongodbSim) Update(c string, query interface{}, set interface{}, upsert
|
|
|
}
|
|
|
}
|
|
|
if nil != err {
|
|
|
- log.Println("CountError", err)
|
|
|
+ log.Println("UpdateError", err)
|
|
|
b = false
|
|
|
}
|
|
|
}
|
|
@@ -124,13 +124,12 @@ func (m *MongodbSim) SaveBulk(c string, doc ...map[string]interface{}) bool {
|
|
|
return b
|
|
|
}
|
|
|
|
|
|
-
|
|
|
func (m *MongodbSim) Save(c string, doc interface{}) string {
|
|
|
defer util.Catch()
|
|
|
sess := m.GetMgoConn()
|
|
|
if sess != nil {
|
|
|
defer m.DestoryMongoConn(sess)
|
|
|
- coll := sess.DB(DB).C(c)
|
|
|
+ coll := sess.DB(m.DbName).C(c)
|
|
|
obj := ObjToM(doc)
|
|
|
id := NewObjectId()
|
|
|
(*obj)["_id"] = id
|
|
@@ -144,20 +143,19 @@ func (m *MongodbSim) Save(c string, doc interface{}) string {
|
|
|
return ""
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//查询单条对象
|
|
|
-func (m *MongodbSim) FindOne(c string, query interface{}) *map[string]interface{} {
|
|
|
+func (m *MongodbSim) FindOne(c string, query interface{}) (*map[string]interface{}, bool) {
|
|
|
return m.FindOneByField(c, query, nil)
|
|
|
}
|
|
|
|
|
|
//查询单条对象
|
|
|
-func (m *MongodbSim) FindOneByField(c string, query interface{}, fields interface{}) *map[string]interface{} {
|
|
|
+func (m *MongodbSim) FindOneByField(c string, query interface{}, fields interface{}) (*map[string]interface{}, bool) {
|
|
|
defer util.Catch()
|
|
|
- res := m.Find(c, query, nil, fields, true, -1, -1)
|
|
|
+ res, ok := m.Find(c, query, nil, fields, true, -1, -1)
|
|
|
if nil != res && len(*res) > 0 {
|
|
|
- return &((*res)[0])
|
|
|
+ return &((*res)[0]), ok
|
|
|
}
|
|
|
- return nil
|
|
|
+ return nil, ok
|
|
|
}
|
|
|
|
|
|
//查询单条对象
|
|
@@ -168,7 +166,7 @@ func (m *MongodbSim) FindById(c string, query string, fields interface{}) *map[s
|
|
|
if sess != nil {
|
|
|
defer m.DestoryMongoConn(sess)
|
|
|
res = make(map[string]interface{})
|
|
|
- coll := sess.DB(DB).C(c)
|
|
|
+ coll := sess.DB(m.DbName).C(c)
|
|
|
var err error
|
|
|
err = coll.FindId(ObjectIdHex(query)).Select(ObjToOth(fields)).One(&res)
|
|
|
if nil != err {
|
|
@@ -179,14 +177,15 @@ func (m *MongodbSim) FindById(c string, query string, fields interface{}) *map[s
|
|
|
}
|
|
|
|
|
|
//底层查询方法
|
|
|
-func (m *MongodbSim) Find(c string, query interface{}, order interface{}, fields interface{}, single bool, start int, limit int) *[]map[string]interface{} {
|
|
|
+func (m *MongodbSim) Find(c string, query interface{}, order interface{}, fields interface{}, single bool, start int, limit int) (*[]map[string]interface{}, bool) {
|
|
|
defer util.Catch()
|
|
|
sess := m.GetMgoConn()
|
|
|
var res []map[string]interface{}
|
|
|
+ b := false
|
|
|
if sess != nil {
|
|
|
defer m.DestoryMongoConn(sess)
|
|
|
res = make([]map[string]interface{}, 1)
|
|
|
- coll := sess.DB(DB).C(c)
|
|
|
+ coll := sess.DB(m.DbName).C(c)
|
|
|
var err error
|
|
|
if single {
|
|
|
err = coll.Find(ObjToM(query)).Select(ObjToOth(fields)).One(&res[0])
|
|
@@ -197,7 +196,9 @@ func (m *MongodbSim) Find(c string, query interface{}, order interface{}, fields
|
|
|
}
|
|
|
if nil != err {
|
|
|
log.Println("FindError", err)
|
|
|
+ } else {
|
|
|
+ b = true
|
|
|
}
|
|
|
}
|
|
|
- return &res
|
|
|
+ return &res, b
|
|
|
}
|