咱們已經學過MongoDB的 find() 查詢功能了,在關係型數據庫中的選取(limit),排序(sort) MongoDB中一樣有,並且使用起來更是簡單
首先咱們看下添加幾條Document進來數據庫
如今有四條Document 根據它們, 對 Limit Skip Sort 分別展開學習 最後來一個 大雜燴post
1. Limit 選取 : 我要從這些 Document 中取出多少個學習
作個小例子 : 我只要 2 條 Document3d
結果是很明顯的blog
可是我仍是要解釋一下 : limit(2) 就是選取兩條Document, 從整個Collection的第一條 Document 開始選取兩條排序
若是咱們不想從第一條Document開始選取,怎麼辦呢?ip
2.Skip 跳過 : 我要跳過多少個Documentit
作個小例子 : 我要跳過前兩個 Document 直接從第三個Document 開始io
結果仍是很明顯class
按照國際慣例解釋一下 : skip(2) 就是跳過兩條Document, 從整個Collection 的第一條 Document 開始跳,日後跳兩條
另外一個例子 : 跳過第一條 直接從 第二條 開始
問題來了,我只想要第二條和第三條怎麼處理呢?
3.Limit + Skip : 從這兒到那兒 的 選取
就是剛纔的問題,一個小例子 : 我只想要第二條和第三條怎麼處理呢
國際慣例 : 跳過第一條Document 從第二條開始選取兩條 Document
彆着急,還有另外一種寫法
兩種寫法徹底獲得的結果徹底同樣可是國際慣例的解釋卻不一樣
國際慣例 : 選取兩條Document 可是要 跳過 第一條Document 從 第二條 開始 選取
4. Sort 排序 : 將結果按照關鍵字排序
作個小例子 : 將find出來的Document 按照 price 進行 升序 | 降序 排列
國際慣例 : 按照 price 字段進行升序 , 1 爲升序 , -1 爲降序
5. Limit + Skip + Sort 混搭來一把
一個例子 : 選取第二條第三條 並 按照 price 進行 升序排列
問題出現了, 按道理不該該是 9800 而後 19800 嗎?
知識點來嘍
重點 : Sort + Skip + Limit 是有執行優先級的 他們的界別分別是 優先 Sort 其次 Skip 最後 Limt
Skip + Limit 的優先級 也是先 Skip 再 Limit