在本页面
该聚合管道允许的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 分组。排除日期的时间部分。 |