MongoDB聚合操作之排序、分页
1.Scrapy_ImagePipeline保存图片2.Scrapy 保存数据案例-小说保存3.Scrapy 中 CrawlSpider 使用(一)4.Scrapy 中 CrawlSpider 使用(二)5.Scrapy 中 Request 的使用6.Scrapy_Request对象meta演示7.Scrapy_Request对象dont_filter演示8.Scrapy_Request对象Cookie的演示9.Scrapy_FormRequest对象的使用10.Scrapy中下载中间件11.Scrapy_下载中间件设置UserAgent12.Scrapy 中 Downloader 设置代理13.下载中间件实战-Scrapy与Selenium结合14.MongoDB介绍15.Mongo_如果快速学习Mongo16.Windows安装与启动MongoDB17.MongoDB通过配置文件管理参数18.Linux安装MongoDB19.什么是Docker20.为什么要使用Docker21.Docker核心概念22.Docker安装23.Docker核心命令_镜像命令24.Docker核心命令_容器命令25.Docker核心命令_其他命令26.Docker 安装 MongoDB27.MongoDB基础命令28.MongoDB数据的增加29.MongoDB数据的更新30.MongoDB删除文档31.MongoDB数据的查询32.Docker数据管理_为什么使用数据卷33.Docker数据管理_配置数据卷34.Docker数据管理_数据卷容器35.Docker实战_Mysql数据卷挂载36.MongoDB聚合操作之分组、过滤
37.MongoDB聚合操作之排序、分页
38.MongoDB索引Index39.Mongo中唯一索引\复合索引40.mongodb和python交互41.Splash反爬42.Dockerfile完全指南_什么是Dockerfile43.Dockerfile完全指南_构建镜像44.Dockerfile完全指南_常见的13种指令上45.Docker网络管理_Docker0网络详解46.Docker网络管理_四种网络模式47.Docker网络管理_自定义网络48.Scrapy保存数据到多个数据库49.Splash与requests结合50.Splash与Scrapy结合51.图片验证码介绍52.验证码-手动输入53.超级鹰识别验证码54.移动端爬虫55.移动端工具的安装56.模拟器配置57.Appium介绍58.Appium环境搭建 - Android SDK安装59.Appium环境搭建 - Appium安装60.appium实战61.滑动验证码-保存图片62.滑动验证码-获取滑动长度63.滑动验证码-编辑移动轨迹64.滑动验证码-移动滑块65.LOL皮肤66.Python调用 JS -PyExecJS, Python 调用 JS -js2py聚合操作之排序、分页
管道命令之$sort
$sort
用于将输入的文档排序后输出
使用示例如下:
-
查询人物,按照年龄升序
db.person.aggregate([{$sort:{age:1}}])
- 查询每个国家的人数,并排序
db.person.aggregate([
{$group:{_id:"$country",counter:{$sum:1}}},
{$sort:{counter:-1}}
])
管道命令之$skip
和 $limit
$limit
限制返回数据的条数$skip
跳过指定的文档数,并返回剩下的文档数
注意
同时使用时先使用skip在使用limit
使用示例如下:
-
查询2条信息
db.person.aggregate([
{$limit:2}
])
- 查询从第三条开始的信息
db.person.aggregate([
{$skip:3}
])
- 查询每个国家的人数,按照人数升序,返回第二条数据
-
db.person.aggregate([ {$group:{_id:"$country",counter:{$sum:1}}}, {$sort:{counter:-1}}, {$skip:1}, {$limit:1} ])
管道命令之
$project
$project
用于修改文档的输入输出结构字段值:0不显示,1显示
使用示例如下:
-
查询人物的姓名、年龄,不显示ID
-
db.person.aggregate([
{$project:{_id:0,name:1,age:1}}
])
-
- 查询每个国家的人数,只显示数量
db.person.aggregate([
{$group:{_id:"$country",counter:{$sum:1}}},
{$project:{_id:0,counter:1}}
])
注意
_id
与其他字段共同设置时,0只能设置在_id
上- 设置字段时,除了_id字段,其他默认取反
//排序
db.person.aggregate([
{$sort:{age:1}}
]);
//分组后排序
db.person.aggregate([
{$group:{_id:'$country',person_num:{$sum:1}}},
{$sort:{person_num:-1}}
]);
//分页
db.person.aggregate([
{$group:{_id:'$country',person_num:{$sum:1}}},
{$sort:{person_num:-1}},
{$skip:1},
{$limit:1}
]);
//project
db.person.aggregate([
{$group:{_id:'$country',person_num:{$sum:1},age:{$avg:'$age'}}},
{$sort:{person_num:-1}},
{$skip:1},
{$limit:1},
{$project:{person_num:1,age:1}}
]);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库