国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MongoDB > 正文

MongoDB 使用Skip和limit分頁

2020-03-14 13:24:59
字體:
來源:轉載
供稿:網友

本文章先來給大家簡單介紹關于MongoDB 數據分頁和排序 limit,skip用戶的一些基礎語句,然后用一個實例詳細介紹MongoDB 數據分頁和排序實例方法。

使用Skip和limit可以如下做數據分頁:

Code:

 

 
  1. page1 = db.things.find().limit(20) 
  2. page2 = db.things.find().skip(20).limit(20) 
  3. 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依次出現的話,例如:

 

 
  1. { $sort: { age : -1 } }, 
  2. { $skip: 10 }, 
  3. { $limit: 5 } 

那么實際執行的順序為:

 

 
  1. { $sort: { age : -1 } }, 
  2.     { $limit: 15 }, 
  3.     { $skip: 10 } 

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

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

這樣做的好處有兩個:

1.在經過$limit管道后,管道內的文檔數量個數會“提前”減小,這樣會節省內存,提高內存利用效率。

2.$limit提前后,$sort緊鄰$limit這樣的話,當進行$sort的時候當得到前“$limit”個文檔的時候就會停止。

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋州市| 甘孜县| 方山县| 钟祥市| 郯城县| 寻乌县| 来宾市| 武定县| 屯留县| 玉溪市| 新竹市| 建平县| 颍上县| 吉林市| 铜山县| 肇源县| 贵阳市| 旺苍县| 凤阳县| 鄂温| 西畴县| 舞阳县| 宣武区| 若羌县| 忻州市| 东乡县| 德庆县| 道真| 尼勒克县| 大丰市| 根河市| 文安县| 岚皋县| 泽普县| 攀枝花市| 鲁山县| 中江县| 呼玛县| 诸城市| 武穴市| 韶山市|