我正在尝试检测集合中某个值的“趋势”。MongoDB:有没有办法使用聚合检测价值趋势?
比方说,我有以下几点:
{ created_at: 2014-12-01, value:1015 }
{ created_at: 2014-12-01, value:1015 }
{ created_at: 2014-12-01, value:1019 }
{ created_at: 2014-12-02, value:1018 }
{ created_at: 2014-12-02, value:1021 }
{ created_at: 2014-12-03, value:1010 }
{ created_at: 2014-12-03, value:1012 }
{ created_at: 2014-12-03, value:1011 }
{ created_at: 2014-12-04, value:1012 }
我只是想有一个像输出:
{ created_at: 2014-12-01, average: 1016, diff: 0}
{ created_at: 2014-12-02, average: 1019, diff: 3}
用Diff是平均值的 两个日期之间的差异。
我想通了如何计算平均值,发现最小/最大和第一/最后的值的集合中,但不能找到一种方法,两个平均值比较...
计算的平均差异会更好。目前可能无法使用聚合框架。 – BatScream
你不能实事求是地计算一样,与聚合框架(一个或多个管道)输出,但有很多,你可以计算代替。我想更多的解释你如何以及为什么检测趋势将是帮助我们提供良好建议的最佳方式。 – wdberkeley
@wdberkeley我有一个从传感器网络持有的读数集合(名为“sensor_readings”)。读数随机出现,并按照您在示例中看到的方式进行存储 - 只需添加完整的时间戳即可。每10分钟我想汇总数据,每分钟对它们进行分组,计算分钟平均值和前一分钟的差值。 –