【问题标题】:Moving averages using MongoDB's aggregation framework使用 MongoDB 的聚合框架移动平均值
【发布时间】:2012-12-27 00:51:14
【问题描述】:

鉴于您有一组具有日期或期间 (2013-01) 属性的文档,使用 MongoDB 的聚合框架计算移动平均统计数据(例如 3-m avg.)的最佳方法是什么?

【问题讨论】:

    标签: mongodb aggregation-framework nosql


    【解决方案1】:

    最好以合理的时间间隔运行整个聚合,然后重新计算整个集合。如果您要计算 3 个月的平均值,请设置一个每天晚上运行的 cronjob 并计算平均值。

    var minus3Months = new Date();
    minus3Months.setMonth(now.getMonth()-3);
    db.myCollection.aggreage([
        {"$match": {"createdAt": {"$gte": minus3Months}}},
        ......
    ])
    

    【讨论】:

    • 您将如何处理历史数据?以编程方式设置多个聚合查询的时间范围,间隔为 3 个月,比如说 50 年?有没有办法用一个查询来做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2012-10-11
    相关资源
    最近更新 更多