当我们在使用 find() 方法查询集合中文档的时侯,会一次性的将所有符合条件的文档全部展示出来,但我们可能并不需要全部的查询结果(比如在做分页处理时),这时该怎么做呢?下面就来介绍一下。
MongoDB 中要限制查询的记录条数可以使用 limit() 方法,该方法接收一个数字作为参数,用来设置要显示的记录数,如下所示:
db.collection_name.find().limit(number)
【示例】假设在集合“course”中有如下数据:
> db.course.find() { "_id" : ObjectId("60331a7eee79704753940391"), "title" : "HTML教程", "author" : "城东书院", "url" : "https://www.cdsy.xyz/computer/programme/html_div_css/" } { "_id" : ObjectId("60331a7eee79704753940392"), "title" : "C#教程", "author" : "城东书院", "url" : "https://www.cdsy.xyz/computer/programme/dotNet/" } { "_id" : ObjectId("60331a7eee79704753940393"), "title" : "MongoDB教程", "author" : "城东书院", "url" : "https://www.cdsy.xyz/computer/soft/database/mongodb/" }
若要查询其中的两条,则可以像下面这样:
> db.course.find({},{"title":1,_id:0}).limit(2) { "title" : "HTML教程" } { "title" : "C#教程" }
注意:如果没有指定 limit() 方法中的参数,则会显示集合中的所有数据。
除了 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教程" }