Читая различные статьи, я считаю, что это возможно, но я не уверен, с чего именно начать.
Вот что я пытаюсь сделать:
Я хочу выполнить запрос, где он находит все документы, созданные за последние 24 часа, и группирует их все по часам, и поскольку каждый часовой документ имеет значение AVG "PM10" и значение MAX_PM10 за последние 24 часа, последние 24 часа AVG_PM10_value.Я хочу выполнить запрос Iam, получая каждый час значение AVG_PM10, напоминая, как рассчитать значение каждого часа avg_PM10 и значение total_PM10_avg, значение toatal_PM10_max, пожалуйста, укажите мне
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