MongoDB趋势数据

时间:2011-03-28 13:35:14

标签: mongodb analytics

我有一个应用程序,客户可以通过向我们拥有的各种域对象添加自定义字段来部分定义其架构。我们正在考虑为这些自定义字段制作趋势数据。我一直在考虑以具有对象上列出的更改的格式存储数据。

{
  _id: "id",
  custom1: 2,
  changes: {
             '2011-3-25': { custom1: 1 }
           }
}

这显然必须小于最大文件大小(16mb),我认为这完全在我们所拥有的变化量之内。

另一个替代方案是每个对象更改都有多个记录:

{
  _id: "id",
  custom1: 1,
  changeTime: '2011-3-25' 
}

这没有文档限制,但会有更多记录,需要更多工作才能获得记录的完整更改集。

你会选择哪个?

1 个答案:

答案 0 :(得分:1)

我认为如果它保持在16MB的限制内,我会考虑单行文档路线。这样,加载记录只需要一次读取,所有这些变化应该非常快。对文档中列出的更改感觉就像是对数据建模的自然方式。

在这样的情况下,特别是如果它不是我以前做过的事情,我会尝试敲定一个基准来测试方法 - 这样,每种方法的优缺点/性能都呈现给你和(希望如此)让您对自己选择的方法充满信心。