首页/数据/NoSQL 速查/聚合管道总览
MongoDB99 条

聚合管道总览

aggregate 把文档流依次通过各阶段处理:过滤、分组、投影、排序、联表、写出;每个阶段输出交给下一阶段。

NoSQL 速查数据更新于 2026-10-12
语法db.collection.aggregate([ stage, ... ], options)
常用阶段$match / $group / $project / $sort / $limit / $unwind / $lookup
常用选项allowDiskUse / maxTimeMS / collation / explain

端到端示例

端到端示例
db.orders.aggregate([
  { $match: { status: "paid" } },
  { $group: { _id: "$sku", totalQty: { $sum: "$qty" }, orders: { $sum: 1 } } },
  { $sort: { totalQty: -1 } },
  { $limit: 5 }
])
管道按“先过滤、后计算”排列能显著减少后续阶段的数据量。

易错点

  • 阶段顺序影响性能与结果:$match 越靠前越好,$group 之前尽量缩小数据量

数据来源与参考

  • MongoDB Manual: Aggregation Pipeline
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌