我负责编写一个应用程序来处理大量的客户和商业智能信息。此信息涉及各种业务和指标(如收入、其网络平台等)的记录。出于报告目的,已决定现在必须对数据加盖时间戳,以便我们可以构建诸如“Foo Inc. 的收入增加”之类的报告当他们在 2010 年转向数字电视时,增长了 200%。”
或者类似的东西。我们真的不对付那些客户是远远落后于时代。
就目前而言,数据存储在 MongoDB 中,其模式(或缺乏模式)准确地表示了它的显示方式。一个文档有一个名称,可能是用于地址信息或与操作相关的统计信息等的嵌入式文档。我不知何故需要添加时间戳或版本控制的概念。最明显的建模方法是这样的:
key: [{ value: "bar", time: "2012" }, { value: "baz", time: "2011" }]
Run Code Online (Sandbox Code Playgroud)
每个属性都有时间戳。显然,这打破了模式,并增加了维护问题。我还尝试过使用约定(命名属性键,如“Foo (2012-09-31)”,并保留带有时间戳的整个集合的副本。
显然,这是一个非常重要的实现功能,我想知道实现它的最佳方法是什么。在 MongoDB 中为数据添加时间戳的最有效和性能友好的方法是什么?
编辑:是的,我正在考虑版本控制,尽管新数据集很可能会成批出现,而不是经常出现(例如,每个季度)。这就是我考虑为每个集合使用单独的集合并为每个集合添加时间戳的原因,因为数据很多而且相距甚远,但我很想知道是否有更好、更易于维护的方法。