【发布时间】:2018-04-16 08:03:39
【问题描述】:
我有 MongoDB 文档,就像这里解释的那样 https://www.mongodb.com/blog/post/schema-design-for-time-series-data-in-mongodb
因此,每天(以及类型和系统)有 1 个文档,其中包含包含小时、分钟和秒数据的 values 字段,如下所示:
{
"_id" : ObjectId("59fc57d75bc7315366b78799"),
"date" : ISODate("2017-11-03T00:00:00.000+0000"),
"system" : "192-168-1-30",
"type" : "memory",
"values" : {
[...]
"11" : { // hour 11
[...]
"49" : { // minute 49
[...]
"43" : NumberInt(62171000), // second 43
"44" : NumberInt(62169000),
[...]
},
"50" : {
"1" : NumberInt(62363000),
"2" : NumberInt(62319000)
[...]
},
[...]
},
[...]
},
"updatedAt" : ISODate("2017-11-03T13:34:00.720+0000"),
"createdAt" : ISODate("2017-11-03T11:49:43.442+0000")
}
例如,在 2017-11-03 的 11:49:43,内存为 62171000。
现在我正在尝试获取这些文档的聚合数据,以获取每分钟、几小时等的平均数据行,但我很困惑如何告诉聚合框架 $values 是一个小时数组,分和秒。
或者我应该使用 map/reduce 吗?
有什么提示吗?
【问题讨论】:
-
是每个 60秒、1小时等等,还是持续 60秒、1小时等等?
-
嗯,你是什么意思?我几乎每秒都会获得数据,我希望将其按分钟、小时等平均汇总。
-
哦,我看到了你所说的部分。 “对于每个”,正在更新...
标签: mongodb time-series aggregation-framework