我正在尝试使用范围制作分页系统:
$hospitals=$qb->select('subtype','price','title','date','photos','description')
->field('active')
->equals(1)
->limit(10)
->field('date')
->lte($lastdate)
->sort('_id', 'desc')
->getQuery()
->execute()
->toArray();
除了这些数据之外,我还想发送一个'has_more'属性,因为我开发了一个无限滚动,当你确定它不会返回任何内容时查询数据是没有意义的。
我想知道如何从上面的查询中获取has_more布尔值。
一种方法是计算查询总数并与限制进行比较,但我相信有一些方法更聪明,更容易..
答案 0 :(得分:2)
当我使用mongo实现无限滚动或分页时,我使用以下技术(我希望你能够使它适应你的学说)。
例如,如果我必须在每个滚动/页面上显示X
元素。我正在选择X+1
元素。然后,如果选择了X+1
元素,我选择新的X+1
元素(跳过第一个X
)。但我总是只输出X
元素。
如果您的X+1
小于+1
,我会输出所有这些内容并知道没有其他内容可以显示。
另一种方法是不打扰所有这些X
事物,只获取{{1}}个元素,并在遇到空结果时停止。在这段时间之后,您只需停止发送请求。