MongoDB文檔查詢-分頁查詢(limit、skip)與查詢結果排序(sort

MongoDB使用find()方法查詢後,可能須要對於返回結果進行排序。在有些查詢中,咱們並不須要返回所有結果,而是按指定的頁長和頁碼返回指定數量的結果html

 

  1. limit()指定查詢結果數量
  2. skip()指定查詢偏移量
  3. sort()實現查詢結果排序

 

1. 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" }

 

2. 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" }

 

3. sort()實現查詢結果排序

對MongoDB的查詢文檔進行排序,要使用sort()方法。sort()方法接受一個文檔,其中包含的排序的字段,及要指定排序方式。排序方式爲可選值爲:1-11表示使用升序排列,-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" }
相關文章
相關標籤/搜索