我想为我的数据库解决方案尝试 MongoDB,所以我正在玩弄它。聚合框架是完美的,大多数文档都很好地解释了我必须做什么。
我的数据如下所示:
{ "_id" : ObjectId("54e5e79032d4796d1dec195e"),
"timestamp" : ISODate("2015-01-20T10:31:02.082Z"),
"value" : 4089 }
例如,如果我想每秒聚合我的数据,我会这样做:
db.mycollection.aggregate(
{
$match : {
timestamp: {$gte: ISODate("2015-01-21T12:00:00Z"),
$lte: ISODate("2015-01-21T12:01:00Z")}
}
},
{
$group : {
_id : { $second: "$timestamp" },
averageQuantity: { $avg: "$value" },
count: { $sum: 1 }
}
}
);
我的问题是,我该怎么做才能按未 预定义的采样率聚合我的数据,例如 $second 或 $minute,但假设是 30 秒?
使用我的示例中的代码,我想返回 2 个结果。
提前致谢!