我的情况是我的查询返回了很多(可能超过50.000+)结果,但是对于每个页面我只想显示50个结果,然后可以单击下一个/上一个按钮..
我在想这可以通过这种方式实现:
querySize := 50
total, err := db.client.Count(ctx, query)
numPages := (total % querySize)
if numPages > curPage {
return nil, errors.New("out of range")
}
offset := querySize * curPage
query = query.Offset(offset).Limit(querySize)
var app []AppStoreApp
if _, err := db.client.GetAll(ctx, query, &app); err != nil {
return nil, err
}
return &app, nil
但这是否有效,是否有更好的方法呢?
此外,检查是否应启用上一个按钮很简单,因为您可以说if curPage > 1
然后应该启用它...但是如何检查是否应启用下一个按钮?也许通过将querySize设置为51,然后仅使用50个结果?
非常感谢任何帮助/建议:)