聚合使用形式
pipeline = [$stage1, $stage2, ... $stageN];
db.<COLLECTION>.aggregate(
pipeline,
{ options }
);
常用运算符
阶段 |
解释 |
$mod |
取模运算 |
$log |
log指数 |
$and |
且 |
$or |
或 |
$not |
非 |
$gt |
大于 |
$eq |
等于 |
$lt |
小于 |
阶段 |
解释 |
$match |
过滤 |
$project |
投影 |
$sort |
排序 |
$group |
分组 |
$skip/$limit |
结果限制 |
$unwind |
展开数组 |
$graphLookup |
图搜索 |
$facet/$bucket |
分面搜索 |
聚合指令
$match

$project

$group

$slice

$unwind

$sort , $skip , $limit

$out

应用场景
示例文档
{
cust_id: "abc123", // 客户 id
ord_date: ISODate("2012 - 11 - 02T17: 04: 11.102Z"), // 下单时间
status: "A",//订单状态
price: 50,// 总金额
items: [
// 子订单
{
sku: "xxx",
qty: 25,
price: 1
}, {
sku: "yyy",
qty: 25,
price: 1
}
]
}
查询指令
文档计数

字段值累加

根据单一字段分组

根据单一字段分组并排序

多字段分组统计

对统计数据进行筛选


数组拆分后分组统计
