溫馨提示×

MongoDB聚合管道查詢怎樣實現(xiàn)分組

小樊
81
2024-10-30 14:54:22
欄目: 云計算

在MongoDB中,你可以使用聚合管道(aggregation pipeline)來實現(xiàn)分組。聚合管道是一系列的階段(stages),每個階段都會對數(shù)據(jù)進行某種操作。要實現(xiàn)分組,你可以使用$group階段。下面是一個簡單的例子,展示了如何使用$group階段對文檔進行分組。

假設(shè)我們有一個名為orders的集合,其中包含以下文檔:

[
  { "_id": 1, "customer_id": 1, "amount": 100 },
  { "_id": 2, "customer_id": 1, "amount": 200 },
  { "_id": 3, "customer_id": 2, "amount": 300 },
  { "_id": 4, "customer_id": 2, "amount": 400 },
  { "_id": 5, "customer_id": 3, "amount": 500 }
]

我們希望按customer_id對文檔進行分組,并計算每個客戶的總金額??梢允褂靡韵戮酆瞎艿啦樵儯?/p>

db.orders.aggregate([
  {
    $group: {
      _id: "$customer_id", // 分組依據(jù)
      totalAmount: { $sum: "$amount" } // 計算每組的金額總和
    }
  }
])

這個查詢的結(jié)果將如下所示:

[
  { "_id": 1, "totalAmount": 300 },
  { "_id": 2, "totalAmount": 700 },
  { "_id": 3, "totalAmount": 500 }
]

在這個例子中,我們使用$group階段將文檔按customer_id分組,并使用$sum操作符計算每個分組的amount字段之和。_id字段用于指定分組的依據(jù)。

0