MongoDB limit()与skip():限制查询条数

11个月前 (04-28)
当我们在使用 find() 方法查询中文档的时侯,会一次性的将所有符条件的文档全部展示出来,但我们可能并不需要全部的查询结果(比如在做分页处理时),这时该怎么做呢?下面就来介绍一下。

limit() 方法

MongoDB 中要限制查询的记录条数可以使用 limit() 方法,该方法接收一个数字作为参数,用来设置要显示的记录数,如下所示:

db.collection_name.find().limit(number)

【示例】假设在“course”中有如下数据:

> db.course.find()

{ "_id" : ObjectId("60331a7eee79704753940391"), "title" : "HTML教程", "author" : "编程帮", "url" : "http://www.bianchen网站站点" rel="nofollow" />

> db.course.find({},{"title":1,_id:0}).limit(2)

{ "title" : "HTML教程" }

{ "title" : "C#教程" }

注意:如果没有指定 limit() 方法中的参数,则会显示中的所有数据。

skip() 方法

除了 limit() 方法外,MongoDB 中还提供了另一种方法 skip(),它同样也可以接收一个数字类型的参数,用来设置要跳过的文档数。其语法格式如下:

db.collection_name.find().skip(number)

【示例】查询中的所有文档,并跳过两条记录:

> db.course.find({},{"title":1,_id:0}).skip(2)

{ "title" : "MongoDB教程" }

注意:skip() 方法的默认参数为 0。

另外,limit() 方法与 skip() 方法可以联使用来实现类似分页的效果,如下所示:

> db.course.find({},{"title":1,_id:0}).skip(1).limit(2)

{ "title" : "C#教程" }

{ "title" : "MongoDB教程" }