?? ● 作用在一个或几个集合上
?? ● 对集合中的数据进行一系列运算
?? ● 将这些数据转化为期望的形式
?? ● group by
?? ● left outer join
?? ● as 等
?? ● 接受一些列文档(原始数据)
?? ● 每个步骤对这些文档进行一系列运算
?? ● 结果文档输出给下一个步骤
pipeline = [$stage1,$stage2,...$stageN]
db.<集合>.aggregate(
pipeline,
{options}
)
步骤 | 作用 | SQL等价运算符 |
---|---|---|
$match | 过滤 | where |
$project | 投影 | as |
$sort | 排序 | order by |
$group | 分组 | group by |
$skip / $limit | 结果限制 | skip / limit |
$lookup | 左外连接 | left outer join |
$unwind | 展开数组 | N/A |
$graphLookup | 图搜索 | N/A |
$facet/$bucket | 分面搜索 | N/A |
$match | $project | $group |
---|---|---|
● $eq、$gt、$gte、$lt、$lte ● $and、$or、$not、$in ● $geoWithin、$intersect ...... |
● 选择需要的或排除不需要的字段 ● $map、$reduce、$filter ● $range ● $multiply、$divide、$substract、$add ● $year、$month、$dayOfMonth、$hour、$minute、$second ...... |
● $esum、$avg ● $push、$addToSet ● $first、$last、$max、$min ...... |
OLTP | OLAP |
---|---|
● 计算 |
● 分析一段时间内的销售总额、均值 ● 计算一段时间内的净利润 ● 分析购买人的年龄分布 ● 分析学生成绩分布 ● 统计员工绩效 |
SQL | MQL |
---|---|
|
|
|
|
MQL特有 $unwind |
|
MQL特有 $bucket |
![]()
|
MQL特有 $facet |
![]()
|
原文:https://www.cnblogs.com/xiaoqingtian/p/13430517.html