轉MongoDB 使用Skip和limit分頁

2021-09-06 22:47:38 字數 838 閱讀 6112

關於mongodb 資料分頁和排序 limit,skip使用者的一些基礎語句,介紹mongodb 資料分頁和排序例項方法。

使用skip和limit可以如下做資料分頁:

code:

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

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

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

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

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

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

},,那麼實際執行的順序為:

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

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

這樣做的好處有兩個: 

1.在經過$limit管道後,管道內的文件數量個數會「提前」減小,這樣會節省記憶體,提高記憶體利用效率。

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

當資料量很小時,這樣做分頁完全沒有問題。但是當資料量很大時,skip操作會變的很慢,應該避免使用。  

(不止是mongodb會這樣,大部分資料庫都是。)可以通過改變查詢文件的規則來達到分頁效果,避免使用skip來跳過大量的資料。

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

轉MongoDB 使用Skip和limit分頁

關於mongodb 資料分頁和排序 limit,skip使用者的一些基礎語句,介紹mongodb 資料分頁和排序例項方法。使用skip和limit可以如下做資料分頁 code page1 db.things.find limit 20 page2 db.things.find skip 20 lim...

Linq 使用skip和take分頁

static int main string args while pagenum pagesize computer.length 頁記錄 pagenum 1 輸出每頁內容 foreach var q in page pagenum console.readkey return 0 如果是stat...

MongoDB中Limit與Skip的使用

mongodb中limit 方法 讀取指定數量的資料記錄,limiy 方法接受乙個數字引數,該引數指定從mongodb中讀取的記錄數。語法 db.collection name.find limit number 例項 learn集合中的資料如下 查詢learn集合中的兩個文件記錄 如果沒有指定li...