一、Spring Data MongoDB Aggregation 简介
上一篇已经Aggregation 做了很详细的介绍,这边就不在介绍,spring Data MongoDB 项目提供与mongodb文档数据库的集成,Spring Data MongoDB 提供org.springframework.data.mongodb.core.MongoTemplate是对Connection进行封装,提供了连接管理,Spring Data MongoDB 像hibernate等一样提供了模板,mongoTemplate提供调用Aggregation 方法。
二、Spring Data MongoDB Aggregation 方法
mongoTemplate提供调用4个Aggregation 方法
【AggregationOperation】
MongoDB Aggregation 提供了Aggregation Operations ,Spring Data MongoDB 也提供这些方法,方便的操作
Pipeline Aggregation Operators project, skip, limit, unwind, group, sort, geoNear
Group Aggregation Operators addToSet, first, last, max, min, avg, push, sum, (*count)
Arithmetic Aggregation Operators add (*via plus), subtract (*via minus), multiply, divide, mod
Comparison Aggregation Operators eq (*via: is), gt, gte, lt, lte, ne
Group Aggregation查看源代码:
GroupOperation implements FieldsExposingAggregationOperation , FieldsExposingAggregationOperation extends AggregationOperation
GroupOperation 提供了 addToSet, first, last, max, min, avg, push, sum等方法
【TypedAggregation】
TypedAggregation<I> extends Aggregation 提供了Class<I> inputType 一个输入类型,也就是对哪个集合进行操作,我们可以查看源代码
【outputType】
输出类型,可以指定具体的实体类型,官方的例子:
更多的例子可以查看官方网文档 Spring Data MongoDB 文档
outputType我们项目中运用比较多的是BasicDBObject.class,操作也比较方便,不用特意定义一个实体类,可以把Aggregation封装一个通用的方法。
三、Spring Data MongoDB Aggregation 例子
我们需要查询订单号为001,002,003中的订单详情各个产品卖出多少个,并且过滤掉数量小于1的产品
【Aggregation 实现类】
【测试类】
原文地址:http://blog.csdn.net/congcong68/article/category/5681741