摘要
mongo aggregation是mongo 的一个轻量级的map-reduce框架,可以实现一些count,sum,groupby的聚合。本身的意义就在于减少查询次数,将原本需要客户端的多次查询能够整合到db端的基于pipeline的查询。这样带来的好处就是减少请求数据库次数,坏处就是这个查询占用的数据库内存大,时间查,有可能拖垮其他查询。这个在本篇文章不讨论。
概述
常用的阶段函数
$match: 就是where查询
$group : 就是group by
$project:添加新字段/重置已有字段,比如group阶段的key值会变成_id就需要
$unwind :将数组拆分为几个字段
$sort 排序
$limit 限制条数
$skip 跳过条数
例子
java 配置 mongo 连接
@Configuration @EnableMongoRepositories(basePackages = "com.fs.mongo.dao") public class Mongo