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