我需要使用聚合查询计算monogodb文档中元素的移动平均值。例如,请考虑集合中的以下文档。
{"Timecode": 1482242192, "Data": 143} //12pm
{"Timecode": 1482238584, "Data": 140} //11pm
{"Timecode": 1482234984, "Data": 137} //10pm
{"Timecode": 1482231384, "Data": 135} //9pm
{"Timecode": 1482227784, "Data": 142} //8pm
{"Timecode": 1482224184, "Data": 146} //7pm
{"Timecode": 1482220584, "Data": 150} //6pm
.
.
//Continues as follows
每小时都会获得一次数据,如注释所示。我想每5小时计算一次数据移动量。
因此,对于上述数据,我想计算(下午12点到晚上8点),(晚上11点到晚上7点),(晚上10点到下午6点)之间的平均数据等等
因此,对于上述数据,我需要获得3份文件作为结果。
[注意:我想仅使用mongodb聚合函数来实现。我不想在前端JavaScript上进行计算]
提前致谢。
答案 0 :(得分:0)
在Mongo Query中使用cluses,并在特定时间添加今日日期,这就是你想要的。
array('data_UTC' => array('$gte' => new MongoDate(strtotime('2017-01-20T00:00:00-02:00')), $lt: new MongoDate(strtotime('2017-01-20T00:00:00-02:00'))))