0

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

4

1 回答 1

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 } })
于 2013-05-29T19:47:10.987 回答