无法使用MongoDB计算平均值
我想知道我不能用Spring5和MongoDB计算平均值 数据库中有40个具有此格式的条目 结果(id=5e4adeca9eab5f052e2ac239,日期=2020-02-12, 值=1.048097596376957) 我想知道从t1到t2的日期以及所有匹配的平均值 我在NPE中编写的代码和ens如下所示:无法使用MongoDB计算平均值,mongodb,spring-data,mongotemplate,Mongodb,Spring Data,Mongotemplate,我想知道我不能用Spring5和MongoDB计算平均值 数据库中有40个具有此格式的条目 结果(id=5e4adeca9eab5f052e2ac239,日期=2020-02-12, 值=1.048097596376957) 我想知道从t1到t2的日期以及所有匹配的平均值 我在NPE中编写的代码和ens如下所示: MatchOperation filterDate = match(Criteria.where("date").gte(startWeek).lte(now)); G
MatchOperation filterDate = match(Criteria.where("date").gte(startWeek).lte(now));
GroupOperation groupByValue = group("value").avg("value").as("averageValue");
Aggregation aggregation = newAggregation(filterDate, groupByValue);
AggregationResults<Document> result = mongoTemplate.aggregate(aggregation, "unknown", Document.class);
Document document = result.getUniqueMappedResult();
document.getDouble("averageValue");
我想知道分组的情况。这有必要吗?
我需要集合吗?要计算
avg
,需要$group
类似记录并使用$avg
运算符
在您的例子中,您希望计算所有匹配的平均值,但我猜您没有一个字段对所有过滤的匹配值都具有相同的值。在这种情况下,您可以通过null
命令MongoDB group来计算平均值
将您的小组
阶段更改为以下阶段:
GroupOperation groupByValue = group().avg("value").as("averageValue");
这将转化为:
{ "$group" : { "_id" : null, "averageValues" : { "$avg" : "$value"}}
{ "$group" : { "_id" : null, "averageValues" : { "$avg" : "$value"}}