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
阶段对结果进行排序。你可以根据需要组合使用这些阶段来处理和分析数据。