【发布时间】:2012-01-19 08:00:47
【问题描述】:
我在 Mongodb 集合中保存了每天为每条记录保存的统计数据。 例如,我的收藏看起来大致像
{ record_id: 12345, date: Date(2011,12,13), stat_value_1:12345, stat_value_2:98765 }
每个 record_id/date 组合都是唯一的。我使用 map-reduce 查询集合以获取给定日期范围内的每条记录的统计信息。
就读取查询性能而言,这种策略是否优于每个 record_id 存储一个包含统计数据数组的文档,就像上面的字典一样:
{ _id: record_id, stats: [
{ date: Date(2011,12,11), stat_value_1:39884, stat_value_2:98765 },
{ date: Date(2011,12,12), stat_value_1:38555, stat_value_2:4665 },
{ date: Date(2011,12,13), stat_value_1:12345, stat_value_2:265 },
]}
在专业方面,我需要一个查询来获取记录的整个统计历史记录,而无需使用较慢的 map-reduce 方法,另一方面,我必须总结给定日期范围内的统计数据在我的应用程序代码中,如果记录超出当前填充大小,则会进行一些磁盘重新分配。
【问题讨论】:
-
每个记录 ID 的项目数是否有上限?
-
没有上限,但实际上每条记录最多不会超过一两年的统计数据(最多 600-700 个统计数据)
-
一些记录也会很少。 600-700 是上限(现实术语,未强制执行)
标签: mongodb