123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- package models
- import (
- "context"
- "encoding/json"
- "errors"
- "eta/eta_mobile/utils"
- "eta/eta_mobile/utils/mgodb"
- "fmt"
- )
- func init() {
- if utils.MgoUrlData != `` {
- var mgoConfig mgodb.MgoConfig
- if e := json.Unmarshal([]byte(utils.MgoUrlData), &mgoConfig); e != nil {
- panic("mongodb链接失败,Err:" + e.Error())
- return
- }
- mgoCli := mgodb.MgoNewClient(mgoConfig)
- utils.MgoDataCli = mgoCli
- utils.MgoDataDbName = mgoConfig.Database
-
-
-
-
-
-
-
- }
- }
- func TestMgoFindOne(colName string, whereParams interface{}) (result interface{}, err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- if utils.MgoDataCli == nil {
- err = errors.New("mongodb连接失败")
- return
- }
- db := utils.MgoDataCli.Database("hz_data")
- coll := db.Collection("data_ths")
- ctx := context.TODO()
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
-
- err = coll.Find(ctx, whereParams).All(&result)
- return
- }
- func MgoBatchInsertData(colName string, dataList interface{}) (err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- _, err = coll.Collection.InsertMany(ctx, dataList)
- if err != nil {
- fmt.Println("InsertMany:Err:" + err.Error())
- return
- }
- return
- }
- func MgoInsertData(colName string, dataItem interface{}) (insertedID interface{}, err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- result, err := coll.Collection.InsertOne(ctx, dataItem)
- if err != nil {
- return
- }
- insertedID = result.InsertedID
- return
- }
- func MgoRemove(colName string, whereParams interface{}) (err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- err = coll.Remove(ctx, whereParams)
- return
- }
- func MgoRemoveAll(colName string, whereParams interface{}) (count int64, err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- res, err := coll.RemoveAll(ctx, whereParams)
- if err != nil {
- fmt.Println("RemoveAll Err:", err.Error())
- return
- }
- count = res.DeletedCount
- return
- }
- func MgoUpdateData(colName string, params, whereParams interface{}) (err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- err = coll.UpdateOne(ctx, whereParams, params)
- return
- }
- func MgoFindOne(colName string, whereParams interface{}) (result interface{}, err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- err = coll.Find(ctx, whereParams).One(&result)
- return
- }
- func MgoBatchFind(colName, sort string, whereParams interface{}, skip, limit int64) (list []interface{}, err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- coll.Close(ctx)
- }()
- err = coll.Find(ctx, whereParams).Sort(sort).Skip(skip).Limit(limit).All(&list)
- return
- }
- func MgoUpsertData(colName string, filter, replacement interface{}) (err error) {
- if colName == "" {
- err = errors.New("集合名称不可为空")
- return
- }
- ctx := context.TODO()
- coll, err := mgodb.MgoGetColl(colName)
- if err != nil {
- fmt.Println("MgoGetColl Err:", err.Error())
- return
- }
- defer func() {
- _ = coll.Close(ctx)
- }()
- _, err = coll.Upsert(ctx, filter, replacement)
- return
- }
|