MongoDB Aggregation 聚合框架 |
您所在的位置:网站首页 › compass使用教程 › MongoDB Aggregation 聚合框架 |
MongoDB Aggregation 聚合框架
文章目录
MongoDB Aggregation 聚合框架前言1.MongoDB 聚合框架是什么2.管道(Pipeline)和步骤(Stage)3.聚合运算的基本格式4.步骤5.步骤中的运算符5.1 $match5.2 $project5.3 $group
6.MQL & SQL 对比6.1 例16.2 例2
7.特殊步骤7.1 $unwind7.2 $bucket7.3 $facet
8.MongoDB Compass(推荐工具)8.1 基本使用8.2 导出
9.Spring Data MongoDB9.1 按日期求和9.2 多字段分组,查询每天的情况
10.参考
前言
本章主要讨论以下几点 介绍 MongoDB Aggregation 聚合框架相关的概念和基础知识MQL(MongoDB 脚本语言)与 SQL 进行类比MongoDB Compass(推荐工具)介绍结合实际项目功能演示 Spring Data MongoDB 1.MongoDB 聚合框架是什么MongoDB 聚合框架(Aggregation Framework)是一个计算框架,它可以: 作用在一个或几个集合上对集合中的数据进行的一系列运算将这些数据转化为期望的形式从效果而言,聚合框架相当于 SQL 查询中的 GROUP BYLEFT OUTER JOINAS 2.管道(Pipeline)和步骤(Stage)整个聚合运算过程称为管道(Pipeline),它是由多个步骤(Stage)组成的,每个管道: 接收一系列文档(原始数据)每个步骤对这些文档进行一系列运算结果文档输出给下一个步骤直到输出最终结果类似于 where,匹配条件 $eq/$gt/$gte/$lt/$lte$and/$or/$not/$in$geoWithin/$intersect 5.2 $project类似于 as,设置别名 选择需求的或者排除不需要的字段$map/$reduce/$filter$range$multiply/$divide/$substract/$add$year/$month/$dayOfMonth/$hour/$minute/$second 5.3 $group类似于 group by 分组 $sum/$avg$push/$addToSet$first/$last/$max/$min 6.MQL & SQL 对比 6.1 例1SQL: SELECT NAME AS '名称', age AS '年龄' FROM users WHERE gender = '男' skip 100 LIMIT 20MQL : db.users.aggregate([ // 步骤1:匹配性别 { $match: { gender: "男" } }, // 步骤2:跳过前100 { $skip: 100 }, // 步骤3:取20个 { $limit: 20 }, // 步骤4:设置别名 { $project: { "名称": "$name", "年龄": "$age" } } ]) 6.2 例2SQL: SELECT department, count(*) AS count FROM users WHERE gender = '男' GROUP BY department HAVING count(*) "code": 0, "msg": "成功", "data": [ { "operateDay": "2021-03-04", "pass": "true", "count": 666, "failureReason": [] }, { "operateDay": "2021-03-04", "pass": "false", "count": 10, "failureReason": [ "原因1", "原因2", ... ] }, { "operateDay": "2021-03-05", "pass": "true", "count": 909, "failureReason": [] } ] } 10.参考 《MongoDB高手课》- 唐建法Spring 官网 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |