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

how to dynamically sum fields in spring-data-mongodb

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

  ProjectionOperation operation = new ProjectionOperation ();
      operation.andInclude((String[])map.values().toArray());

        agg = newAggregation(operation, 
                group((String[])map.values().toArray()));

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

问候

克里斯

向 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();

问候

克里斯