mongo的分组 求和排序 sql
时间: 2023-09-03 20:15:08 浏览: 117
SQL中分组排序问题
MongoDB的分组、求和和排序使用聚合框架实现,具体操作如下:
1. 分组
使用 `$group` 操作符可以对集合中的文档进行分组。例如,按照 `category` 字段对 `products` 集合中的文档进行分组:
```
db.products.aggregate([
{ $group: { _id: "$category", products: { $push: "$$ROOT" } } }
])
```
上述代码中,`$group` 操作符的 `_id` 参数表示分组的依据,这里是按照 `category` 字段进行分组。`$push` 操作符用于将分组后的文档存储在一个数组中。
2. 求和
使用 `$sum` 操作符可以对集合中的文档进行求和。例如,计算 `sales` 集合中所有文档的 `amount` 字段之和:
```
db.sales.aggregate([
{ $group: { _id: null, totalAmount: { $sum: "$amount" } } }
])
```
上述代码中,`$sum` 操作符对每个文档的 `amount` 字段进行求和,并将结果存储在 `totalAmount` 字段中。
3. 排序
使用 `$sort` 操作符可以对聚合结果进行排序。例如,按照 `totalAmount` 字段对 `sales` 集合中的文档进行降序排序:
```
db.sales.aggregate([
{ $group: { _id: null, totalAmount: { $sum: "$amount" } } },
{ $sort: { totalAmount: -1 } }
])
```
上述代码中,首先使用 `$group` 操作符计算出 `sales` 集合中所有文档的 `amount` 字段之和,并将结果存储在 `totalAmount` 字段中。然后使用 `$sort` 操作符按照 `totalAmount` 字段进行降序排序。
阅读全文