news 2026/9/27 16:36:58

【MongoDB实战】5.3 高级聚合场景实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【MongoDB实战】5.3 高级聚合场景实战

文章目录

  • 《MongoDB 实战入门》第5章 进阶查询:聚合管道与数据统计分析
    • 5.3 高级聚合场景实战
      • 前置准备
      • 场景1:按用户等级统计用户数量(g r o u p + group+group+match)
        • 场景需求
        • 数据准备(插入测试数据)
        • 实战聚合代码
        • 代码解析
        • 预期结果
      • 场景2:商品分类统计销量Top3( $group + $sort + $limit)
        • 场景需求
        • 数据准备(插入测试数据)
        • 实战聚合代码
        • 代码解析
        • 预期结果
      • 场景3:日志数据按小时聚合统计($bucket阶段实战)
        • 场景需求
        • 数据准备(插入测试数据)
        • 实战聚合代码
        • 代码解析
        • 预期结果
        • 扩展优化
      • 场景4:关联查询($lookup,模拟关系型数据库JOIN)
        • 场景需求
        • 数据准备(复用users集合,新增订单数据)
        • 实战聚合代码
        • 代码解析
        • 预期结果
      • 实战注意事项

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

5.3 高级聚合场景实战

前置准备

    1. MongoDB版本:推荐5.0+(核心语法兼容低版本)
    1. 客户端:使用mongosh(替代旧版mongoshell)
    1. 核心概念:聚合管道(Aggregation Pipeline)由多个「阶段(Stage)」组成,每个阶段处理数据后传递给下一个阶段,核心阶段包括$match(筛选)、$group(分组)、$sort(排序)、$limit(限制数量)、$bucket(分桶)、$lookup(关联)。

场景1:按用户等级统计用户数量(g r o u p + group+group+match)

场景需求
  • 筛选出「状态为活跃(active)」的用户;

  • 按用户等级(level:1/2/3/4)分组,统计每个等级的用户数量;

  • 按统计数量降序排序,便于查看分布。

数据准备(插入测试数据)
// 切换到测试数据库use mongodb_practice;// 插入用户数据到users集合db.users.insertMany([{name:"张三",level:1,status:"active",registerTime:newDate("2025-01-01")},{name:"李四",level:2,status:"active",registerTime:newDate("2025-01-02")},{name:"王五",level:1,status:"inactive",registerTime:newDate("2025-01-03")},{name:"赵六",level:3,status:"active",registerTime:newDate("2025-01-04")},{name:"钱七",level:2,status:"active",registerTime:newDate("2025-01-05")},{name:"孙八",level:1,status:"active",registerTime:newDate("2025-01-06")},{name:"周九",level:4,status:"inactive",registerTime:newDate("2025-01-07")},{name:"吴十",level:2,status:"active",registerTime:newDate("2025-01-08")}]);

实战聚合代码
// 按等级统计活跃用户数量db.users.aggregate([// 阶段1:筛选活跃用户(减少后续聚合数据量,提升性能){$match:{status:"active"}},// 阶段2:按等级分组,统计数量{
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 19:10:56

【MongoDB实战】6.1 索引基础:为什么需要索引

文章目录 第6章 性能优化:索引与查询效率提升 6.1 索引基础:为什么需要索引 6.1.1 无索引的核心问题:`全集合扫描(Collection Scan)` 6.1.2 索引的核心作用 6.1.3 MongoDB索引的工作原理(基础认知) 6.1.4 实战实操:索引的创建、测试与管理 前置准备:创建测试集合并插入…

作者头像 李华
网站建设 2026/9/26 23:43:03

Cocos Creator三消游戏开发终极指南:快速构建完整消除系统

还在为三消游戏开发而苦恼吗?想要掌握使用Cocos Creator打造高质量消除游戏的秘诀吗?本指南将带你从零开始,深入解析消除游戏的核心技术要点,让你轻松构建属于自己的爆款游戏! 【免费下载链接】kaixinxiaoxiaole 使用c…

作者头像 李华
网站建设 2026/9/26 21:47:27

LDDC:终极免费歌词工具,快速解决你的听歌烦恼

LDDC:终极免费歌词工具,快速解决你的听歌烦恼 【免费下载链接】LDDC 精准歌词(逐字歌词/卡拉OK歌词)歌词获取工具,支持QQ音乐、酷狗音乐、网易云平台,支持搜索与获取单曲、专辑、歌单的歌词 | Accurate Lyrics (verbatim lyrics) Retrieval Tool, suppor…

作者头像 李华
网站建设 2026/9/27 11:33:51

FastChat实战指南:3步实现高效模型优化与快速部署

FastChat实战指南:3步实现高效模型优化与快速部署 【免费下载链接】FastChat An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…

作者头像 李华
网站建设 2026/9/27 8:20:40

AMD 780M APU终极性能优化指南:一键释放35%AI加速潜力

AMD 780M APU终极性能优化指南:一键释放35%AI加速潜力 【免费下载链接】ROCmLibs-for-gfx1103-AMD780M-APU ROCm Library Files for gfx1103 and update with others arches based on AMD GPUs for use in Windows. 项目地址: https://gitcode.com/gh_mirrors/ro…

作者头像 李华
网站建设 2026/9/27 3:54:57

22、BIND 服务器配置、使用与安全指南

BIND 服务器配置、使用与安全指南 1. BIND 服务器基础操作 在启动或重启名称服务器时,检查系统日志中的错误和警告是一个很好的做法。守护进程控制脚本中的无效指令或选项可能会导致名称服务器出现错误,使其无法启动或突然停止。 以下是 BIND 服务器的基本操作命令: - 启…

作者头像 李华