在本页面
该聚合管道允许的MongoDB提供原生的聚集功能,对应于许多常见的数据在SQL聚合操作。
下表概述了常见的SQL聚合术语,函数和概念以及相应的MongoDB 聚合运算符:
| SQL术语,函数和概念 | MongoDB聚合运算符 |
|---|---|
| 哪里 | $match |
| 通过...分组 | $group |
| 拥有 | $match |
| 选择 | $project |
| 订购 | $sort |
| 限制 | $limit |
| 和() | $sum |
| 计数() | |
| 加入 | $lookup |
| 选择进入NEW_TABLE | $out |
| 合并到表中 | $merge (从MongoDB 4.2开始可用) |
有关所有聚合管道和表达式运算符的列表,请参见《 聚合管道快速参考》。
也可以看看
下表提供了SQL聚合语句和相应的MongoDB语句的快速参考。表格中的示例假定以下条件:
SQL示例假设有两个表,orders并
order_lineitem通过order_lineitem.order_id和orders.id列进行连接。
MongoDB示例假定一个集合orders包含以下原型的文档:
| SQL范例 | MongoDB示例 | 描述 |
|---|---|---|
计算来自的所有记录 orders |
||
对price字段求和orders |
||
对于每个唯一性cust_id,对price字段求和。 |
||
对于每个唯一字段,cust_id对price字段求和,结果按和排序。 |
||
对于每一个独特的
cust_id,ord_date分组,总结了price场。排除日期的时间部分。 |
||
对于cust_id具有多个记录的记录,返回cust_id和对应的记录计数。 |
||
对于每个唯一的cust_id,ord_date
分组,求和price场和仅返回其中总和大于250不包括的日期的时间部分。 |
||
对于每个cust_id
具有状态的唯一性A,对price字段求和。 |
||
对于每个cust_id
具有status的唯一性A,对price字段求和并仅在总和大于250时返回。 |
||
对于每个唯一性cust_id,求和qty与订单关联的相应订单项字段。 |
||
计数不同的数目
cust_id,ord_date分组。排除日期的时间部分。 |