MongoDB - n期平均/最小/最大

时间:2013-05-29 13:32:17

标签: mongodb mongodb-query

我在集合'foo'中有时间序列数据。每条记录都有两个字段 - foodate foovalue 。为每个 foodate 生成 foovalue 的n期平均值,最小值和最大值的最有效方法是什么?

1 个答案:

答案 0 :(得分:0)

使用聚合框架:

> db.foo.insert([{ date: 0, value: 0 }, { date: 0, value: 1 }, { date: 1, value: 2 }])
> db.foo.count()
3
> db.foo.aggregate(
    { $group: {
        _id: '$date',
        avg: { $avg: '$value' } }
    },
    { $project: {
        // Rename '_id' to 'date', include 'avg'.
        date: '$_id',
        _id: false,
        avg: true
    } },
    { $sort: { _id: 1 } })