package statusermod import ( "91porn-server/common/pageopt" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) type Matcher = pageopt.Matcher // ItemMatch type ItemMatch struct { Item Itemtype } func (t *ItemMatch) New() Matcher { return pageopt.NewAssignMatch("item", t.Item) } func List(sort bson.D, skip, limit int64, matchers ...Matcher) ([]UserStat, error) { filter := pageopt.MergeM(matchers) opt := &options.FindOptions{} if len(sort) != 0 { opt.SetSort(sort) } opt.SetSkip(skip) opt.SetLimit(limit) list := make([]UserStat, 0, limit) return list, coll(nil).Find(&list, filter, opt) }