Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用MongoDB计算平均值_Mongodb_Spring Data_Mongotemplate - Fatal编程技术网

无法使用MongoDB计算平均值

无法使用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

我想知道我不能用Spring5和MongoDB计算平均值

数据库中有40个具有此格式的条目

结果(id=5e4adeca9eab5f052e2ac239,日期=2020-02-12, 值=1.048097596376957)

我想知道从t1到t2的日期以及所有匹配的平均值

我在NPE中编写的代码和ens如下所示:

    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"}}