如何在spring-data-mongodb中动态求和字段

时间:2015-12-27 05:56:09

标签: spring mongodb spring-data-mongodb

我是mongodb的新手,有一些动态字段(var1,var2,var3 ... varN),在HashMap中有变量名,字段是Double字段,如何汇总mongodb中的动态字段?我尝试了以下代码段:

typeof Minute

我无法输入动态字段的总和。有什么出路吗?

问候

克里斯

1 个答案:

答案 0 :(得分:0)

向spring-data-mongodb致敬。能用spring-data-mongodb写一个合理的查询。希望它对其他人有用。

 Aggregation agg2 = null;   
 GroupOperation t = null;
 List<RenderReport> result=null;

Fields fields =Fields.fields(vars);//vars is as string array containing variable names var1, var2 and so on 
                t = group( fields().and("year") );
  Iterator<org.springframework.data.mongodb.core.aggregation.Field> fieldIt=fields.iterator();
  while(fieldIt.hasNext())
  {
      org.springframework.data.mongodb.core.aggregation.Field f =  fieldIt.next();

     t= t.sum(f.getName()).as(f.getName());    
  }
   agg2 = newAggregation(
              project( vars  )
                          .andExpression("units * retailPrice").as("grossSales")
                        .andExpression("year(mydate)").as("year"),
                 t,
                  sort(Sort.Direction.ASC, "year")
                 );

     AggregationResults<RenderReport> groupResults = mongoTemplate.aggregate(agg2,RenderReport.class,
             RenderReport.class);

      result = groupResults.getMappedResults();

问候

克里斯