edb_data_calculate.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package mgodb
  2. import (
  3. "context"
  4. "eta/eta_forum_admin/utils"
  5. "go.mongodb.org/mongo-driver/bson"
  6. "go.mongodb.org/mongo-driver/mongo/options"
  7. "time"
  8. )
  9. func GetEdbDataCalculateByEdbInfoId(edbInfoId int) (items []*EdbDataBase, err error) {
  10. findOptions := options.Find()
  11. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  12. filter := bson.D{{"edb_info_id", edbInfoId}}
  13. ctx := context.TODO()
  14. cur, err := db.Find(filter, findOptions)
  15. if err != nil {
  16. return
  17. }
  18. // Close the cursor once finished
  19. defer cur.Close(ctx)
  20. for cur.Next(ctx) {
  21. // create a value into which the single document can be decoded
  22. var elem EdbDataBase
  23. err = cur.Decode(&elem)
  24. if err != nil {
  25. return
  26. }
  27. items = append(items, &elem)
  28. }
  29. if err = cur.Err(); err != nil {
  30. return
  31. }
  32. return
  33. }
  34. // GetEdbCalculateDataList 获取指标的数据(日期正序返回)
  35. func GetEdbCalculateDataList(endInfoId int, startDate, endDate time.Time) (list []*EdbDataBase, err error) {
  36. findOptions := options.Find()
  37. findOptions.SetSort(bson.D{{"data_time", 1}})
  38. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  39. filter := bson.D{{"edb_info_id", endInfoId}}
  40. if !startDate.IsZero() {
  41. filter = append(filter, bson.E{"data_time", bson.M{"$gte": startDate}})
  42. }
  43. if !endDate.IsZero() {
  44. filter = append(filter, bson.E{"data_time", bson.M{"$lte": endDate}})
  45. }
  46. ctx := context.TODO()
  47. cur, err := db.Find(filter, findOptions)
  48. if err != nil {
  49. return
  50. }
  51. // Close the cursor once finished
  52. defer cur.Close(ctx)
  53. for cur.Next(ctx) {
  54. // create a value into which the single document can be decoded
  55. var elem EdbDataBase
  56. err = cur.Decode(&elem)
  57. if err != nil {
  58. return
  59. }
  60. list = append(list, &elem)
  61. }
  62. if err = cur.Err(); err != nil {
  63. return
  64. }
  65. return
  66. }