|
@@ -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 {
|
|
@@ -124,7 +124,6 @@ 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()
|
|
@@ -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
|
|
|
}
|
|
|
|
|
|
//查询单条对象
|
|
@@ -179,10 +177,11 @@ 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)
|
|
@@ -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
|
|
|
}
|