| 语法 | { $group: { _id: <表达式>, field: { <累加器>: <表达式> } } } |
|---|---|
| 分组键 | 单字段 "$sku" / 复合对象 { sku: "$sku", day: "$day" } / null 表示全集合一组 |
| 累加器 | $sum / $avg / $min / $max / $push / $addToSet / $first / $last / $count |
按 SKU 统计
按 SKU 统计
db.orders.aggregate([
{ $group: { _id: "$sku", totalQty: { $sum: "$qty" }, avgQty: { $avg: "$qty" }, tags: { $addToSet: "$status" } } }
])$push 会把全部值进数组,超大分组可能导致 16MB 文档上限失败,改用 $addToSet 或先聚合。