亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mongodb sdk會把skip轉成腳本嗎

mongodb sdk會把skip轉成腳本嗎

慕尼黑的夜晚無繁華 2019-04-13 10:07:44
mongodb sdk會把skip轉成腳本嗎
查看完整描述

1 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

關于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依次出現的話,例如:
    { $sort: { age : -1 } },
    { $skip: 10 },
    { $limit: 5 }
    那么實際執行的順序為:
{ $sort: { age : -1 } },
    { $limit: 15 },
    { $skip: 10 }
    $limit會提前到$skip前面去執行。
    此時$limit = 優化前$skip+優化前$limit
    這樣做的好處有兩個:
    1.在經過$limit管道后,管道內的文檔數量個數會“提前”減小,這樣會節省內存,提高內存利用效率。
    2.$limit提前后,$sort緊鄰$limit這樣的話,當進行$sort的時候當得到前“$limit”個文檔的時候就會停止。
    當數據量很小時,這樣做分頁完全沒有問題。但是當數據量很大時,skip操作會變的很慢,應該避免使用?! ?br/>(不止是mongoDb會這樣,大部分數據庫都是。)可以通過改變查詢文檔的規則來達到分頁效果,避免使用skip來跳過大量的數據。
(通過計算,得到下次查詢應該從什么地方開始)



查看完整回答
反對 回復 2019-04-14
  • 1 回答
  • 0 關注
  • 587 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號