add func convert #8
|
@ -0,0 +1,82 @@
|
|||
package mongodb
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/thoas/go-funk"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// GetAppIDFromHex ...
|
||||
func GetAppIDFromHex(s string) primitive.ObjectID {
|
||||
id, _ := primitive.ObjectIDFromHex(s)
|
||||
return id
|
||||
}
|
||||
|
||||
// ConvertObjectIDsToStrings ...
|
||||
func ConvertObjectIDsToStrings(ids []primitive.ObjectID) []string {
|
||||
return funk.Map(ids, func(item primitive.ObjectID) string {
|
||||
return item.Hex()
|
||||
}).([]string)
|
||||
}
|
||||
|
||||
// UniqObjectIds ...
|
||||
func UniqObjectIds(ids []primitive.ObjectID) []primitive.ObjectID {
|
||||
idStr := ConvertObjectIDsToStrings(ids)
|
||||
idStr = funk.UniqString(idStr)
|
||||
return ConvertStringsToObjectIDs(idStr)
|
||||
}
|
||||
|
||||
// ConvertStringsToObjectIDs ...
|
||||
func ConvertStringsToObjectIDs(strValues []string) []primitive.ObjectID {
|
||||
return funk.Map(strValues, func(item string) primitive.ObjectID {
|
||||
return GetAppIDFromHex(item)
|
||||
}).([]primitive.ObjectID)
|
||||
}
|
||||
|
||||
// ConvertStringToObjectID ...
|
||||
func ConvertStringToObjectID(id string) primitive.ObjectID {
|
||||
ID, _ := primitive.ObjectIDFromHex(id)
|
||||
return ID
|
||||
}
|
||||
|
||||
// SortObjectId ...
|
||||
func SortObjectId(ids []primitive.ObjectID) []primitive.ObjectID {
|
||||
sort.Slice(ids, func(i, j int) bool {
|
||||
return ids[i].Timestamp().Before(ids[j].Timestamp())
|
||||
})
|
||||
return ids
|
||||
}
|
||||
|
||||
// ConvertInterfacesToObjectIDs ...
|
||||
func ConvertInterfacesToObjectIDs(values []interface{}) []primitive.ObjectID {
|
||||
s := make([]primitive.ObjectID, len(values))
|
||||
for i, v := range values {
|
||||
s[i] = v.(primitive.ObjectID)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// ConvertInterfacesToStrings ...
|
||||
func ConvertInterfacesToStrings(values []interface{}) []string {
|
||||
s := make([]string, len(values))
|
||||
for i, v := range values {
|
||||
s[i] = v.(string)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// ConvertStringsToInterfaces ...
|
||||
func ConvertStringsToInterfaces(values []string) []interface{} {
|
||||
s := make([]interface{}, len(values))
|
||||
for _, v := range values {
|
||||
s = append(s, v)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// ConvertToJSONString ...
|
||||
func ConvertToJSONString(data interface{}) string {
|
||||
dataByte, _ := json.Marshal(data)
|
||||
return string(dataByte)
|
||||
}
|
1
go.mod
1
go.mod
|
@ -4,6 +4,7 @@ go 1.16
|
|||
|
||||
require (
|
||||
github.com/logrusorgru/aurora v2.0.3+incompatible
|
||||
github.com/thoas/go-funk v0.9.2 // indirect
|
||||
go.mongodb.org/mongo-driver v1.7.1
|
||||
golang.org/x/text v0.3.7
|
||||
)
|
||||
|
|
4
go.sum
4
go.sum
|
@ -67,8 +67,11 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/thoas/go-funk v0.9.2 h1:oKlNYv0AY5nyf9g+/GhMgS/UO2ces0QRdPKwkhY3VCk=
|
||||
github.com/thoas/go-funk v0.9.2/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
|
||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
||||
|
@ -114,6 +117,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
|
|||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
|
Loading…
Reference in New Issue