如何知道mongodb是否有更多的记录显示

时间:2014-05-11 20:07:08

标签: mongodb doctrine-orm doctrine-odm

我正在尝试使用范围制作分页系统:

$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布尔值。

一种方法是计算查询总数并与限制进行比较,但我相信有一些方法更聪明,更容易..

1 个答案:

答案 0 :(得分:2)

当我使用mongo实现无限滚动或分页时,我使用以下技术(我希望你能够使它适应你的学说)。

例如,如果我必须在每个滚动/页面上显示X元素。我正在选择X+1元素。然后,如果选择了X+1元素,我选择新的X+1元素(跳过第一个X)。但我总是只输出X元素。

如果您的X+1小于+1,我会输出所有这些内容并知道没有其他内容可以显示。

另一种方法是不打扰所有这些X事物,只获取{{1}}个元素,并在遇到空结果时停止。在这段时间之后,您只需停止发送请求。