MongoDB使用find()
方法查詢後,可能須要對於返回結果進行排序。在有些查詢中,咱們並不須要返回所有結果,而是按指定的頁長和頁碼返回指定數量的結果html
limit()
指定查詢結果數量find()方法查詢文檔後,其默認返回前20條數據。要限制MongoDB查詢結果數,使用limit()
方法,該方法接受一個數字值,表示要返回的結果數。數據庫
limit()
語法結構dom
db.COLLECTION_NAME.find().limit(NUMBER)
例如,現有sites
數據集合,集合數據以下:spa
{ "_id" : ObjectId("56999ca102129bdec412ed38"), "name" : "IT筆錄", "domain" : "itbilu.com" } { "_id" : ObjectId("56999ca902129bdec412ed39"), "name" : "老聶", "domain" : "niefengjun.cn" } { "_id" : ObjectId("56999cb102129bdec412ed3a"), "name" : "一介布衣", "domain" : "yijiebuyi.com" }
查詢該集合,只返回第一條數據:code
> db.sites.find().limit(1) { "_id" : ObjectId("56999ca102129bdec412ed38"), "name" : "IT筆錄", "domain" : "itbilu.com" }
skip()
指定查詢偏移量在使用SQL
查詢的數據庫(如:mySQL、PostgreSQL)中,可使用limit 數量,偏移量
或使用limit 數量 offset 偏移量
實現數據的分頁查詢。而在MongoDB中,可使用skip()
方法,指定偏移量,該也接受一個表示數量的參數。htm
skip()
語法結構排序
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
例如,使用skip()
查詢sites
集合中的第二個文檔:ip
> db.sites.find().limit(1).skip(1) { "_id" : ObjectId("56999ca902129bdec412ed39"), "name" : "老聶", "domain" : "niefengjun.cn" }
sort()
實現查詢結果排序對MongoDB的查詢文檔進行排序,要使用sort()
方法。sort()
方法接受一個文檔,其中包含的排序的字段,及要指定排序方式。排序方式爲可選值爲:1
和-1
,1
表示使用升序排列,-1
表示降序排序。文檔
sort()
語法結構get
db.COLLECTION_NAME.find().sort({KEY:1})
例如,查詢sites
數據集合,分別按name
升序和降序兩種試查詢:
> db.sites.find().sort({name:1}) { "_id" : ObjectId("56999ca102129bdec412ed38"), "name" : "IT筆錄", "domain" : "itbilu.com" } { "_id" : ObjectId("56999cb102129bdec412ed3a"), "name" : "一介布衣", "domain" : "yijiebuyi.com" } { "_id" : ObjectId("56999ca902129bdec412ed39"), "name" : "老聶", "domain" : "niefengjun.cn" } > db.sites.find().sort({name:-1}) { "_id" : ObjectId("56999ca902129bdec412ed39"), "name" : "老聶", "domain" : "niefengjun.cn" } { "_id" : ObjectId("56999cb102129bdec412ed3a"), "name" : "一介布衣", "domain" : "yijiebuyi.com" } { "_id" : ObjectId("56999ca102129bdec412ed38"), "name" : "IT筆錄", "domain" : "itbilu.com" }