MongoDB 聚合管道查詢是一種強大的數據處理工具,它允許你對數據進行各種操作,如過濾、投影、分組、排序等。要處理數據,你需要使用聚合管道命令,該命令由一系列階段組成,每個階段都會對數據進行某種操作。以下是一些常用的聚合管道階段:
$match
:過濾數據,只保留滿足指定條件的文檔。$project
:選擇或排除文檔中的字段,以及對字段進行計算和轉換。$group
:根據指定的鍵值對文檔進行分組,并對每個組執行聚合操作,如求和、計數、平均值等。$sort
:對文檔進行排序。$limit
:限制查詢結果的數量。$skip
:跳過指定數量的文檔。$unwind
:將數組字段拆分為多個文檔。$lookup
:在另一個集合中查找文檔,并將它們與當前文檔合并。$addFields
和 $set
:向文檔中添加新字段或更新現有字段。$replaceRoot
和 $replaceWith
:替換文檔的根級字段或替換為另一個文檔。以下是一個簡單的聚合管道查詢示例,用于計算每個部門的員工總數:
db.employees.aggregate([
{
$group: {
_id: "$department", // 根據部門字段對文檔進行分組
count: { $sum: 1 } // 計算每個組的文檔數量
}
},
{
$sort: { // 對結果進行排序
count: -1, // 降序排列
_id: 1 // 按部門名稱升序排列
}
}
])
這個示例首先使用 $group
階段根據 department
字段對員工進行分組,然后使用 $sort
階段對結果進行排序。你可以根據需要組合使用這些階段來處理和分析數據。