当前位置: 首页 > news >正文

完整教程:【MongoDB实战】5.2 常用聚合阶段实战

完整教程:【MongoDB实战】5.2 常用聚合阶段实战

文章目录

  • 《MongoDB实战入门》第5章 进阶查询:聚合管道与数据统计分析
    • 5.2 常用聚合阶段实战
      • 前置回顾:测试数据集结构
      • 5.2.1 $match:筛选数据(管道的“前置过滤器”)
        • 核心作用
        • 语法格式
        • 实战案例
        • 关键注意事项
      • 5.2.2 $project:字段投影与重命名
        • 核心作用
        • 语法格式
        • 实战案例
        • 关键注意事项
      • 5.2.3 $group:分组统计(聚合计算核心)
        • 核心作用
        • 语法格式
        • 实战案例
        • `关键注意事项`
      • 5.2.4 $sort:排序聚合结果
        • 核心作用
        • 语法格式
        • 实战案例
        • `关键注意事项`
      • 5.2.5 $limit / $skip:聚合结果分页
        • 核心作用
        • 语法格式
        • 实战案例
        • 关键注意事项
      • 5.2.6 综合实战:多阶段组合实现复杂统计
        • 步骤拆解
        • 实战代码
        • 执行结果
      • 5.2.7 核心总结

《MongoDB实战入门》第5章 进阶查询:聚合管道与数据统计分析

5.2 常用聚合阶段实战

前置回顾:测试数据集结构

// 快速查看订单集合结构
db.orders.findOne();

在这里插入图片描述

5.2.1 $match:筛选数据(管道的“前置过滤器”)

核心作用
语法格式
{
 $match: {
 <查询条件> } }
实战案例
  • 需求1:筛选“已支付”且订单金额大于1000元的订单
// 仅筛选,不做后续处理
db.orders.aggregate([
{

$match: {

status: "已支付", // 等值匹配
amount: {
 $gt: 1000 } // 金额>1000
}
}
]);

在这里插入图片描述

  • 需求2:筛选2025年1月2日创建的所有订单
db.orders.aggregate([
{

$match: {

create_time: {

$gte: ISODate("2025-01-02T00:00:00Z"),
$lte: ISODate("2025-01-02T23:59:59Z")
}
}
}
]);

在这里插入图片描述

关键注意事项
  • $match应尽可能放在管道起始位置,先过滤再计算;

  • 支持所有find()的查询操作符($eq$gt$in$and等),例如:{ $match: { category: { $in: ["电子产品", "服装"] } } }

5.2.2 $project:字段投影与重命名

核心作用

控制文档的字段显示/隐藏、重命名字段、新增计算字段,重塑文档结构,是聚合管道中“调整输出格式”的核心阶段。

语法格式
{

$project: {

<字段1>: 1/0, // 1=显示,0=隐藏(_id默认显示,需设为0隐藏)<新字段名>: "$原字段名", // 重命名字段<计算字段>: <表达式> // 新增基于原字段的计算字段}}
实战案例
  • 需求1:仅显示订单ID、商品分类、订单金额,并重命名amount订单金额,隐藏_id
db.orders.aggregate([
{
 $match: {
 status: "已支付" } }, // 先筛选
{

$pr
http://www.jsqmd.com/news/285302/

相关文章:

  • 2025–2026 程序员薪资情况浅析
  • 1月22号
  • 深圳精神科医院哪家最好
  • 《人月神话》阅读笔记第一篇
  • 冥想第一千七百七十一天(1771)
  • 详细介绍:LabVIEW 2018用户登录与管理系统:便捷开发利器
  • 强烈安利8个AI论文平台,研究生轻松搞定毕业论文!
  • paperzz毕业论文|AI智能写作引擎颠覆传统,硕士生一键生成3万字高质量论文的终极解决方案
  • 程序化广告的隐形脉络:深入解析302跳转背后的追踪逻辑
  • Semantic Kernel人工智能开发 - 第五章:提示词工程与模板优化——释放大语言模型真正潜力
  • 如何添加新驱动到昆仑通态的软件里面
  • 利用Windows电话服务中的RCE漏洞:深入分析CVE-2026-20931
  • InfiniFlow
  • anaconda环境中如何生成requirements
  • SpringBoot+Vue +常规应急物资管理系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 微信小程序构建的三种主流途径及其适用场景解析
  • 2025年总结:一个树苗倔强生长
  • 视觉色选机如何实现高速精准分选与产业升级
  • C++虚函数与普通函数区别
  • 2026主管护师内科护理学视频课推荐:直面3大核心痛点,3家主流机构实测榜单
  • 基于Java+SpringBoot+SSM旅游出行指南系统(源码+LW+调试文档+讲解等)/旅游攻略系统/出行规划工具/旅行指南平台/旅游信息服务系统/出行助手应用
  • 2026年如何选择合适的二次元测量仪公司来满足定制需求?
  • 分享短期冲刺主治医师考试的实用干货与技巧
  • 揭秘!2026深圳APP/小程序开发公司TOP3权威榜单,这家企业客户复购率高达68%!
  • 【收藏必备】0成本10分钟搭建!用Dify打造你的私人AI超级大脑知识库
  • 2026主管护师内科护理学视频课推荐:3大维度测评,锁定适配资源
  • 分享主治医师各科目备考攻略,汇聚智慧精华
  • 「收藏必备」从零到一构建Agent后端:基于上下文工程的完整实现方案
  • 2026年厦门AI外呼系统标杆厂商推荐:智能外呼软件、AI外呼软件、电销外呼软件、电话外呼软件、红渠AI机器人、重塑智能沟通新生态
  • 全网热议!2026年重庆全屋定制销售厂家排名推荐,汇集口碑榜单