在这个教程中,我们将深入探讨 MongoDB 的聚合框架,并学习如何使用高级聚合操作来处理复杂的数据查询。

聚合操作简介

聚合操作是 MongoDB 中的一种强大工具,它允许你将数据组合成新的格式。聚合操作通常用于处理和分析数据,例如,计算总和、平均值、最大值和最小值等。

高级聚合操作

以下是一些 MongoDB 高级聚合操作:

  • $match:过滤数据。
  • $group:将数据分组。
  • $sort:对数据进行排序。
  • $project:投影字段。
  • $lookup:连接集合。

示例

假设我们有一个名为 orders 的集合,它包含以下数据:

[
  { "order_id": 1, "customer_id": 2, "amount": 100 },
  { "order_id": 2, "customer_id": 1, "amount": 200 },
  { "order_id": 3, "customer_id": 2, "amount": 300 }
]

计算每个客户的订单总额

我们可以使用 $group$sum 来计算每个客户的订单总额:

db.orders.aggregate([
  { $group: { _id: "$customer_id", total_amount: { $sum: "$amount" } } }
])

连接两个集合

假设我们有一个名为 customers 的集合,它包含以下数据:

[
  { "customer_id": 1, "customer_name": "Alice" },
  { "customer_id": 2, "customer_name": "Bob" }
]

我们可以使用 $lookup 来连接这两个集合:

db.orders.aggregate([
  { $lookup: {
    from: "customers",
    localField: "customer_id",
    foreignField: "customer_id",
    as: "customer_details"
  }},
  { $unwind: "$customer_details" },
  { $project: { customer_name: "$customer_details.customer_name", total_amount: "$total_amount" } }
])

扩展阅读

要了解更多关于 MongoDB 聚合操作的信息,请访问本站的其他相关教程:/MongoDB 聚合教程

MongoDB 聚合操作图解