MongoDB(二)
文档的分页查询
统计查询
统计查询使用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()
方法返回符合条件的全部记录条数
分页列表查询
可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据。
基本语法如下所示:
db.COLLECTION.find().limit(NUMBER).skip(NUMBER)
如果你想返回指定条数的记录,可以在find方法后调用limit来返回结果(TopN),默认值20,例如:
db.comment().limit(3)
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.COLLECTION_NAME.find().sort({
KEY:1})
或
db.集合名称.find().sort(排序方式)
例如:
对userid降序排序,并对访问量进行升序排列
db.comment.find().sort({userid:-1,likenum:1})
提示:
sikp(),limit(),sort()三个放在一起执行的时候,执行顺序是先sort(),然后skip(),最后limit(),和命令编写顺序无关。
文档的更多查询
正则的复杂条件查询
MongoDB的模糊查询是通过正则表达式的方式实现的。格式为:
db.collection.find({field:/正则表达式/})
或
db.集合.find({字段:/正则表达式/})
提示:正则表达式是js的语法,直接量的写法。
例如,我要查询评论内容包含“开水”的所有文档,代码如下:
db.comment.find({content:/开水/})
如果要查询评论的内容中以“专家”开头的,代码如下:
db.comment.find({content:/^专家/})
比较查询
<, <=, >, >= 这个操作符也是很常用的,格式如下:
db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: