@@ -0,0 +1,40 @@
|
||||
package authoritymod
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"91porn-server/common/log"
|
||||
)
|
||||
|
||||
// AuthorPage AuthorPage
|
||||
type AuthorPage struct {
|
||||
Total int `json:"total" bson:"total"`
|
||||
List []AuthorityDoc `json:"list" bson:"list"`
|
||||
}
|
||||
|
||||
// AuthorPages AuthorPages
|
||||
func AuthorPages(skip int64, limit int64) (page AuthorPage, err error) {
|
||||
pipeline := []M{
|
||||
M{
|
||||
"$facet": M{
|
||||
"total": A{M{"$count": "total"}},
|
||||
"list": A{
|
||||
M{"$sort": M{"role": 1}},
|
||||
M{"$skip": skip},
|
||||
M{"$limit": limit},
|
||||
},
|
||||
},
|
||||
},
|
||||
M{
|
||||
"$project": M{
|
||||
"total": M{"$arrayElemAt": A{"$total.total", 0}},
|
||||
"list": 1,
|
||||
},
|
||||
},
|
||||
}
|
||||
if err = coll(nil).AggregateDecode(&page, pipeline); err != nil {
|
||||
log.ZapLog.Error(fmt.Sprintf("coll:%s Page error:%+v:", table, err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user