【mongoDB實戰】limit,skip,sort

來源:互聯網
上載者:User

        在mongo中最常用的查詢選項就是限制返回結果的數量,忽略一定數量的結果並排序.所有這些選項一定要在查詢被派發到伺服器之前添加.在這裡需要用到的就是limit,skip,sort這三個函數了.這三個函數都可以達到限制返回結果數量的目的,但是他們之間還有區別. 1.limit

要限制結果數量,可以在find後使用limit函數.這個函數類似分頁的每頁多少條資料,例如,如果每頁是2條資料,如果匹配的結果達不到2條,則返回匹配結果的數量,如果匹配結果大於2條,則返回2條.

limit-取這個表的前兩條資料db.getCollection('activity').find({}).limit(2)




2.skip

skip和limit最大的區別就是skip是從滿足匹配條件的略過符合表資料的前*條資料,顯示資料.例如,共四條滿足匹配條件,則顯示後兩條資料.

skip-取這個表的後兩條資料db.getCollection('activity').find({}).skip(2)



3.sort

sort用一個對象作為參數:一對鍵/值對,鍵對應文檔的鍵名,值代表排序的方向.排序方向可以是1(升序),-1(降序),如果指定了多個鍵,則按照多個鍵的順序進行排序.

例如:按照activityCode這個欄位進行升序排序,就可以這樣寫:

db.getCollection('activity').find({}).sort({activityCode:1})




三個函數組合使用

這三個函數可以組合使用,對於分頁非常有用.例如:某商家想要查詢activity這個表,並且按照activityCode按照升序排序,就可以使用下面的查詢語句.

db.getCollection('activity').find({}).limit(2).sort({activityCode:1})(未添加了查詢條件的)
如果某商家想要查詢activityType為1,並且按照 activityCode按照升序排序,就可以使用下面的查詢語句.

db.getCollection('activity').find({"activityType":0}).limit(2).sort({activityCode:1})(添加了查詢條件的)


三者一塊組合,可以理解為每頁2條資料,點擊"下一頁"可以看到更多的結果,通過skip可以非常簡單的實現,只需要略過前2個即可(已經在第一頁顯示了).

db.getCollection('activity').find({"activityType":0}).limit(2).skip(1).sort({activityCode:1})


如果skip的數量過多,可能會導致效能的問題,不建議這麼使用.這樣就體現不到mongo的優點了. 總結:         這三個函數各有各自的用處,limit可以理解為用於分頁中第一頁顯示的條數,skip可以理解為"下一頁"顯示的條數,sort可以理解為分頁中按照哪個欄位來進行排序.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.