MongoDB聚合查询
圣人不仁 人气:0最近工作使用MongoDB遇到聚合查询,对同一张表的多个字段进行加减乘除操作,网上查资料摸索半天终于找到查询方法,在此记录,以免以后忘记。
// 查询集合T.class里字段a-b的值别名c,保存到E.class里面返回
// 相当于SQL:select a-b c from T where name = 'Jack' and isDelete = 0. resultType = E Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(Criteria.where("name").is("Jack").and("isDelete").is(0)),
Aggregation.project(E.class).andExpression("subtract(a,b)").as("c"));
AggregationResults<E> results = mongoTemplate.aggregate(aggregation, T.class, E.class); // 返回列表 // 此处将返回值放入一个新对象是为了得到resultList之后还可以继续操作,不然会继续操作resultList会抛出异常 List<E> resultList = new ArrayList<E>(results.getMappedResults()); // 返回单个结果 E result = results.getUniqueMappedResult();
MongoDB加减乘除操作符:
加:$add;
减:$subtract;
乘:$multiply;
除:$divide;
加载全部内容