溫馨提示×

MongoDB中如何進行數據聚合

小樊
109
2024-09-26 12:23:35
欄目: 云計算

在MongoDB中,你可以使用聚合管道(aggregation pipeline)來進行復雜的數據處理和聚合操作。聚合管道是一系列的階段(stages),每個階段都會對輸入的數據進行某種操作,然后將結果傳遞給下一個階段。

以下是一些常見的聚合管道階段:

  1. $match:過濾數據,只輸出符合條件的文檔。
  2. $group:根據指定的鍵值對文檔進行分組,并對每個組執行聚合操作(如求和、平均、最大、最小等)。
  3. $sort:對數據進行排序。
  4. $project:選擇需要的字段,排除不需要的字段。
  5. $unwind:將數組字段拆分成多個文檔。
  6. $lookup:從另一個集合中拉取文檔,并將它們添加到當前的文檔中。
  7. $limit:限制輸出的文檔數量。
  8. $skip:跳過指定數量的文檔。

以下是一個簡單的示例,展示了如何使用聚合管道對一個名為orders的集合進行數據聚合:

db.orders.aggregate([
  { $match: { status: "A" } }, // 過濾狀態為"A"的訂單
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } }, // 按客戶ID分組,并計算每個客戶的訂單總金額
  { $sort: { total: -1 } } // 按訂單總金額降序排序
])

這個示例中,$match階段過濾出狀態為"A"的訂單,$group階段按客戶ID分組并計算每個客戶的訂單總金額,$sort階段按訂單總金額降序排序。最終的結果將是一個包含每個客戶ID和其對應訂單總金額的列表。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女