聚合使用形式
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
}
]
}
查询指令
文档计数
字段值累加
根据单一字段分组
根据单一字段分组并排序
多字段分组统计
对统计数据进行筛选
数组拆分后分组统计