package utils import ( "encoding/json" "fmt" "go.mongodb.org/mongo-driver/bson" ) //ToBsonM 将struct转换为 Bson Map func ToBsonM(s interface{}) (bson.M, error) { data, err := bson.Marshal(s) if err != nil { return nil, err } m := make(bson.M) if err := bson.Unmarshal(data, &m); err != nil { return nil, err } return m, nil } // 将page转换为数据库的skip、limit func ToDBPage(pageNum int64, pageSize int64) (skip int64, limit int64) { return (pageNum - 1) * pageSize, pageSize } //JSONStruct2Map 将struct转换为Map func JSONStruct2Map(obj interface{}) (map[string]interface{}, error) { m := make(map[string]interface{}) j, err := json.Marshal(obj) if err != nil { return nil, err } if err := json.Unmarshal(j, &m); err != nil { return nil, err } return m, err } //Map2JSONStruct 将map转换为Json struct func Map2JSONStruct(v interface{}, m map[string]interface{}) error { j, err := json.Marshal(m) if err != nil { return err } if err := json.Unmarshal(j, v); err != nil { return err } return err } // struct转换为Map func Struct2Map(obj interface{}) map[string]interface{} { m := make(map[string]interface{}) b, err := json.Marshal(obj) if err != nil { return m } if err = json.Unmarshal(b, &m); err != nil { fmt.Println(err) } return m }