MongoDB是一种非关系型数据库,它提供了强大的数据聚合功能,可以对集合中的文档进行各种复杂的处理和分析。在本文中,我们将介绍MongoDB聚合框架中的两个常用操作:分组和限制。
分组操作($group)可以根据指定的表达式或字段,将文档分成不同的组,并对每个组进行一些统计或计算。例如,我们可以根据文档中的某个字段,计算每个组的文档数量、平均值、最大值、最小值等。分组操作的语法如下:
_id:
限制操作($limit)可以限制输出结果的文档数量,只保留前N个文档。这在需要对数据进行分页或取样时很有用。限制操作的语法如下:
$limit:
下面我们来看一个具体的例子。假设我们有一个名为orders的集合,存储了不同客户的订单信息,每个文档包含以下字段:
1.customer: 客户姓名
2.product: 订购的产品名称
3.quantity: 订购的产品数量
4.price: 订购的产品单价
我们想要对这些订单进行聚合,按照客户姓名进行分组,并计算每个客户的订单总额(quantity * price),然后按照订单总额降序排序,并只保留前10个客户。