【发布时间】:2015-04-26 02:37:14
【问题描述】:
我正在为我们公司的生产系统开发一个监控系统。这意味着我将存储的数据的性质是时间序列的。在查看了其他几个数据库之后,我为此选择了 MongoDB。 来自生产系统的事件会一直到达,但我打算将事件存储在 10 分钟间隔的文档中。最终,集合中的文档将如下所示:
{
_id: '04/25/2015 13:00',
event1_count : 130,
event2_count : 50,
event3_count : 200
},
{
_id: '04/25/2015 13:10',
event1_count : 230,
event2_count : 20,
event3_count : 400
}
文档_id: '04/25/2015 13:00' 仅表示它包含在 04/25/2015 13:00 和 04/25/2015 13:10 之间到达的所有事件。
最终,我希望在数据上运行不同的报告。例如 - 最近 20 分钟内的事件计数。 我想在过去 20 分钟内获得的事件计数结果是:
{
event1_count : 360,
event2_count : 70,
event3_count : 600
}
我的问题 - 有没有办法在一个查询中聚合来自不同文档的多个字段?
顺便说一句 - 将数据保持在 10 分钟间隔对我来说很重要,因为其他报告将需要该时间分辨率。
【问题讨论】:
-
在我的问题中,您可以看到 2 个文档。每个文档都有几个字段 - event1_count、event2_count 等。我想对两个文档中的 event_count1 求和,对于 event_count2 也是如此。所以结果应该是 event_count1 的总和,event_count2 的总和等等。我正在寻找一种在一个查询中执行此操作的方法,假设我会有很多其他事件,而不仅仅是我的示例中的 3 个。
标签: mongodb