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