MongoDB 使用Skip和limit分頁

關於MongoDB 數據分頁和排序 limit,skip用戶的一些基礎語句,介紹MongoDB 數據分頁和排序實例方法。
數據庫

使用Skip和limit能夠以下作數據分頁:
優化

Code:spa

   page1 = db.things.find().limit(20)排序

   page2 = db.things.find().skip(20).limit(20)ip

   page3 = db.things.find().skip(40).limit(20) 內存

備註:可用於分頁,limit是pageSize,skip是第n-1頁*pageSize (n-1表示幾  第1,2...頁)skip表示跳過  多少條數據,聚合管道的優化。
文檔

     1.$sort  +  $skip  +  $limit順序優化it

    若是在執行管道聚合時,若是$sort、$skip、$limit依次出現的話,例如:效率

    { $sort: { age : -1 } },基礎

    { $skip: 10 },

    { $limit: 5 }

    那麼實際執行的順序爲:

{ $sort: { age : -1 } },

    { $limit: 15 },

    { $skip: 10 }

    $limit會提早到$skip前面去執行。

    此時$limit = 優化前$skip+優化前$limit

    這樣作的好處有兩個: (腳本學堂 www.jbxue.com)

    1.在通過$limit管道後,管道內的文檔數量個數會「提早」減少,這樣會節省內存,提升內存利用效率。

    2.$limit提早後,$sort緊鄰$limit這樣的話,當進行$sort的時候當獲得前「$limit」個文檔的時候就會中止。

    當數據量很小時,這樣作分頁徹底沒有問題。可是當數據量很大時,skip操做會變的很慢,應該避免使用。  

(不止是mongoDb會這樣,大部分數據庫都是。)能夠經過改變查詢文檔的規則來達到分頁效果,避免使用skip來跳過大量的數據。

(經過計算,獲得下次查詢應該從什麼地方開始)

相關文章
相關標籤/搜索