【发布时间】:2015-05-03 00:33:52
【问题描述】:
我正在设计一个时间序列数据集,基本上我有我监控的服务器,我想知道一段时间内关于它的一些指标。 基于http://blog.mongodb.org/post/65517193370/schema-design-for-time-series-data-in-mongodb 我创建了一个设计,它是每个服务器 + 月的一个文档,其中每天嵌入一个文档,每小时嵌入一个文档,其中包含指标。
所以为某个服务器插入两个小时的数据看起来像这样:
-- 用于服务器 i-09484d47 和日期 2015/02/23 小时 16
db.servers.update(
{ _id : "i-09484d47_201502",
service: "AWS/EC2",
owner : "gil"
},
{$set: {"values.23.16.samples": 60 ,"values.23.16.average": 0.33883, "values.23.16.minimum": 0.16, "values.23.16.maximum": 0.67} },
{ upsert: true }
)
-- 用于服务器 i-09484d47 和日期 2015/02/23 小时 17
db.servers.update(
{ _id : "i-09484d47_201502",
service: "AWS/EC2",
owner : "gil"
},
{$set: {"values.23.17.samples": 60 ,"values.23.17.average": 0.6, "values.23.17.minimum": 0.5, "values.23.17.maximum": 0.8} },
{ upsert: true }
)
等等。
现在我想获取特定服务器的所有数据,在给定的日期范围内,比如某个星期(假设它包含在一个月内)。 我不想拉整个文档并在客户端上进行过滤。 有什么想法吗?
【问题讨论】:
-
为什么不把更新的日期保存在你的文档中,用它来查询你的数据库呢?
-
没看懂你的问题,能详细点吗?
标签: mongodb time-series