mongodb_基础到进阶 – MongoDB 快速上手(三)
一、MongoDB : 文档的分页查询
1、 mongodb 统计查询
1)统计查询使用 count() 方法,语法如下:
db.collection.count(query, options)
2)count() 方法 参数说明
Parameter | Type | Description | |
---|---|---|---|
query | document | 查询选择条件。 | |
options | document | 可选。用于修改计数的额外选项。 | |
提示:可选项暂时不使用。
3)示例:(1)统计所有记录数:统计 comment 集合的所有的记录数:
db.comment.count()
4)示例:( 2)按条件统计记录数:例如:统计 userid 为 1003 的记录条数
db.comment.count({
userid:"1003"})
5)提示:
默认情况下 count() 方法返回符合条件的全部记录条数。
2、mongodb 分页列表查询
1)可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据。
基本语法如下所示:
>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
2)如果你想返回指定条数的记录,可以在find方法后调用limit来返回结果(TopN),默认值20,例如:
db.comment.find().limit(3)
3)skip 方法同样接受一个数字参数作为跳过的记录条数。(前N个不要),默认值是0
db.comment.find().skip(3)
4)分页查询:需求:每页2个,第二页开始:跳过前两条数据,接着值显示3和4条数据
//第一页
db.comment.find().skip(0).limit(2)
//第二页
db.comment.find().skip(2).limit(2)
//第三页
db.comment.find().skip(4).limit(2)
3、mongodb 排序查询
1)sort() 方法 对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
语法如下所示:
db.COLLECTION_NAME.find().sort({
KEY:1})
或
db.集合名称.find().sort(排序方式)
2)例如:对 userid 降序排列,并对访问量 likenum 进行升序排列
# 对 userid 升序排列
> db.comment.find({
},{
userid:1}).sort({
userid:1})
{
"_id" : "1", "userid" : "1002" }
{
"_id" : "4", "userid" : "1003" }
{
"_id" : "5", "userid" : "1003" }
{
"_id" : "3", "userid" : "1004" }
{
"_id" : "2", "userid" : "1005" }
# 对 userid 降序排列
> db.comment.find({
},{
userid:1}).sort({
userid:-1})
{
"_id" : "2", "userid" : "1005" }
{
"_id" : "3", "userid" : "1004" }
{
"_id" : "4", "userid" : "1003" }
{
"_id" : "5", "userid" : "1003" }
{
"_id" : "1", "userid" : "1002" }
# 对 userid 降序排列,并对访问量 likenum 进行升序排列
db.comment.find().sort({
userid:-1,likenum:1})
> db.comment.find({
},{
userid:1, likenum:1}).sort({
userid:-1, likenum:1})
{
"_id" : "2", "userid" : "1005", "likenum" : 888 }
{
"_id" : "3", "userid" : "1004", "likenum" : 666 }
{
"_id" : "4", "userid" : "1003", "likenum" : 2000 }
{
"_id" : "5", "userid" : "1003", "likenum" : 3000 }
{
"_id" : "1", "userid" : "1002", "likenum" : 1000 }
4、提示:
skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关。
5、实操演示:
二、MongoDB : 文档的更多查询
1、MongoDB 正则的复杂条件查询
1)MongoDB 的模糊查询是通过正则表达式的方式实现的。格式为:
db.collection.find({
field:/正则表达式/})
或
db.集合.find({
字段