开发者学堂课程【MongoDB精讲课程(上):文档的分页查询】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/726/detail/12959
文档的分页查询
内容介绍
一、统计查询
二、分页列表查询
三、排序查询
一、统计查询
分页之前需要先把集合统计出来,集合里面有多少个数据,即有多少个文档。
统计查询使用 count() 方法,语法如下:
db.collection.count(query,options)
参数:
Parameter |
Type |
Description |
query |
document |
查询选择条件。 |
options |
document |
可选。用于修改计数的额外选项。 |
提示:可选项暂时不适用。
【示例】
1、统计所有记录数
统计 comment 集合的所有的记录数:
db.comment.count()
2、按条件统计记录数
例如:统计 userid 为1003的记录条数
db.comment.count({userid:
”1003”})
提示:默认情况下 count() 方法返回符合条件的全部记录条数。
二、分页列表查询
现有5条数据,将1、2分为一页,3、4分为一页,5作为最后一页,共为三页。
可以使用 limit() 方法来读取指定数量的数据,使用 skip() 方法来跳过指定数量的数据。基本语法方式如下所示:
>db.COLLECT_NAME.find().limit(NUMBER).skip(NUMBER)
如果想返回指定条数的记录,可以在 find 方法后调用 limit 来返回结果(TopN),默认值20,例如:
db.comment.find().limit(2)
执行后出现前四条,没有实现分页查询。可以使用 skip 方法。
skip 方法同样接受一个数字参数作为跳过的记录条数。(前 N 个不要),默认值是0
db.comment.find().skip(3)
分页查询:需求:每页2个,第二页开始;跳过前两条数据,接着只显示3和4条数据
//第一页
db.comment.find().skip(0).limit(2)
//第二页
db.comment.find().skip(2).limit(2)
//第三页
db.comment.find().skip(4).limit(2)
三、排序查询
sort()方法对数据进行排列, sort() 方法可以通过参数指定排序的字段,并使用1和-1来指定排序的方式,其中1为升序排列,而-1是用于降序排列。语法如下所示:
db.COLLECT_NAME.find().sort({KEY:1})
或
db.集合名称。Find()sort(排列方式)
例如:
对 userid 升序排列
db.comment.find({}
,{userid:1}).sort({userid:1})
对 userid 降序排列,并对访问量进行升序排列
db.comment.find().sort({userid:-1,likenum:1})
提示:
skip() , limit() , sort() 三个放在一起执行的时候,执行的顺序是先 sort() ,然后是 skip() ,最后是显示的 limit() ,和命令编写的顺序无关。