Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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 查询最近24小时内的所有文档createdate,并按小时分组?_Mongodb_Mongoose_Aggregation Framework - Fatal编程技术网

Mongodb 查询最近24小时内的所有文档createdate,并按小时分组?

Mongodb 查询最近24小时内的所有文档createdate,并按小时分组?,mongodb,mongoose,aggregation-framework,Mongodb,Mongoose,Aggregation Framework,通过阅读各种文章,我相信这应该是可能的,但我不确定从哪里开始 这就是我想做的: 我想运行一个查询,它会查找过去24小时内的所有文档createdate,并按小时对所有文档进行分组,因为每个小时文档都有一个平均值“PM10”和过去24小时的最大值PM10,最近24小时平均PM10值。我想运行一个查询Iam获取每小时平均PM10值Reming如何计算每小时平均PM10值和总PM10值,总PM10最大值请任何人建议我 Here's a sample of the collection: {

通过阅读各种文章,我相信这应该是可能的,但我不确定从哪里开始

这就是我想做的:


我想运行一个查询,它会查找过去24小时内的所有文档createdate,并按小时对所有文档进行分组,因为每个小时文档都有一个平均值“PM10”和过去24小时的最大值PM10,最近24小时平均PM10值。我想运行一个查询Iam获取每小时平均PM10值Reming如何计算每小时平均PM10值和总PM10值,总PM10最大值请任何人建议我

Here's a sample of the collection:

    {
        "_id" : ObjectId("5ad768309ee4f03480792b20"),
        "CREATEDATE" : ISODate("2018-04-25T15:45:52.779Z"),
        "PM10" : 176.024749755859,
        "PM2DOT5" : 60.0020217895508,
    }
 {
        "_id" : ObjectId("5ad768309ee4f03480792b30"),
        "CREATEDATE" : ISODate("2018-04-25T16:45:52.779Z"),
        "PM10" : 176.024749755859,
        "PM2DOT5" : 60.0020217895508,
    }

And the aggregation query:

    db.collection1.aggregate(
     {$match: {
       CREATEDATE: {$gt: new Date(new Date(ISODate().getTime() - 1000*60*60*24))}
     }},
     {$project: {  "h":{"$hour":"$CREATEDATE"}, "PM10":1 }},
     {$group:{ 
       "_id":"$h",
       "Max_PM10": {"$max":"$PM10"},
       "PM10": {$avg:"$PM10"} 
     }}
   ])
Expected output:

    {
        "Hour":15,
        "AVG_PM10_VALUE":154.64,

    }
   {
        "Hour":16,
        "AVG_PM10_VALUE":157.64,

    }


  "TOTAL_PM10_MAX_VALUE":157.89,
  "TOTAL_PM10_AVG_VALUE":156.14

那么问题是什么呢?你告诉我们你想要什么,你告诉我们你写了什么,现在告诉我们到底出了什么问题。我想运行一个查询,我只得到每小时PM10值。删除“LAST_24HOURS_PM10_MAX_value”:177.89,“LAST_24HOURS_PM10_AVG_value”当前位置144.67找不到请建议我以前曾试图向您解释,我们不理解您的要求,因为您实际上没有提出任何要求。
“过去24小时PM10平均值”是什么意思?
什么是“过去24小时平均值”?怎么会出现“按小时分组”?您是否希望返回的每个小时的值都相同?我们只是不知道。如何计算每个小时的平均PM10值以及所有文档的平均PM10值和最大PM10值您不能有““所有文档中的合计”作为“每个文档”中的值。分组的工作方式不是这样的。如果希望它在最终结果中以这种方式显示,请运行另一个查询以获得“合计平均值”“然后更改从该文件中获得的每个文件,使其包含该编号。无法在单个聚合管道中完成。无论如何,这不是一种可伸缩的方式。改为运行两个查询。