|
@@ -441,7 +441,13 @@ func (m *MongodbSim) CountByErr(c string, q interface{}) (int, error) {
|
|
defer catch()
|
|
defer catch()
|
|
m.Open()
|
|
m.Open()
|
|
defer m.Close()
|
|
defer m.Close()
|
|
- res, err := m.C.Database(m.DbName).Collection(c).CountDocuments(m.Ctx, ObjToM(q))
|
|
|
|
|
|
+ var res int64
|
|
|
|
+ var err error
|
|
|
|
+ if filter := ObjToM(q); filter != nil && len(*filter) > 0 {
|
|
|
|
+ res, err = m.C.Database(m.DbName).Collection(c).CountDocuments(m.Ctx, filter)
|
|
|
|
+ } else {
|
|
|
|
+ res, err = m.C.Database(m.DbName).Collection(c).EstimatedDocumentCount(m.Ctx)
|
|
|
|
+ }
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Println("统计错误", err.Error())
|
|
log.Println("统计错误", err.Error())
|
|
return 0, err
|
|
return 0, err
|