我是mongodb的新手,有一些动态字段(var1,var2,var3 ... varN),在HashMap中有变量名,字段是Double字段,如何汇总mongodb中的动态字段?我尝试了以下代码段:
typeof Minute
我无法输入动态字段的总和。有什么出路吗?
问候
克里斯
答案 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();
问候
克里斯