MongoDB聚合操作

2023-04-13 21:42:22 浏览数 (1)

MongoDB是一个非常强大的文档数据库,它提供了一系列聚合操作,可以方便地对文档进行分组、过滤、排序和统计等操作。在本文中,我们将介绍MongoDB的聚合操作,并提供一些示例代码来说明如何在MongoDB中使用它们。

聚合管道

MongoDB的聚合操作使用聚合管道来处理数据。聚合管道由多个阶段组成,每个阶段执行不同的操作,并将其结果传递给下一个阶段。聚合管道的最后一个阶段输出最终结果。

下面是一些常用的聚合管道阶段:

  1. $match:用于筛选文档。
  2. $group:用于按照指定的字段分组。
  3. $project:用于指定要返回的字段。
  4. $sort:用于排序文档。
  5. $limit:用于限制返回的文档数量。

下面是一个使用聚合管道的示例代码:

代码语言:javascript复制
db.collection.aggregate([
  { $match: { status: "A" } },
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } },
  { $limit: 5 }
])

上述代码中,我们首先使用$match阶段筛选出status为"A"的文档。然后使用$group阶段按照cust_id字段对文档进行分组,并计算每组文档中amount字段的总和。接下来使用$sort阶段按照总和进行降序排序,并使用$limit阶段限制返回的文档数量为5。

聚合函数

除了聚合管道,MongoDB还提供了一些聚合函数,可以用于统计、计算和操作文档数据。

下面是一些常用的聚合函数:

  1. $sum:计算指定字段的总和。
  2. $avg:计算指定字段的平均值。
  3. $max:返回指定字段的最大值。
  4. $min:返回指定字段的最小值。

下面是一个使用聚合函数的示例代码:

代码语言:javascript复制
db.collection.aggregate([
  { $group: { _id: "$status", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } }
])

上述代码中,我们使用$group阶段按照status字段对文档进行分组,并计算每组文档中amount字段的总和。接下来使用$sort阶段按照总和进行降序排序。

0 人点赞