2014-05-11 53 views
0

我試圖與範圍內的分頁系統:怎麼知道的MongoDB有更多的記錄,以顯示

$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

當我實現無限滾動或分頁與蒙戈,我我正在使用以下技術(我希望你能夠適應你的學說)。

如果例如我必須每個滾動/頁面顯示X元素。我選擇了X+1元素。然後,如果確切地選擇了X+1元素,我選擇新的X+1元素(跳過第一個X)。但我總是隻輸出X元素。

如果你有小於X+1,我輸出所有這些,並知道沒有別的東西可以顯示。

另一種方法是不要打擾所有這+1事情,只得到X元素,並在遇到空結果時停止。在此時間之後,您只需停止發送請求。

+0

這就是我所做的,兄弟我們也有同樣的想法:D 我會稍微詳細一點,所以這就是我所做的: 當結果已滿時我發送一個屬性在我的json數組命名爲hasmore,其值爲true,並且在我的javascript中,我總是測試此變量以發送請求,當結果爲空時,hasmore = false。它不會發送任何其他內容 – Sekai