MongoDB的数据库结构实现了保存历史中对象的更改

时间:2016-07-08 16:13:48

标签: java mongodb

我想在Mongodb中保存有关某些对象和它们之间关系的信息。还需要保存历史记录中的所有更改对象以及查看过去对象状态的能力 现在我将对象的实际版本保存在各自的集合中,并使用单独的相应集合进行更改(具有对象ID和更改时间),并通过按时间使用所有更改来收集过去的对象状态。
我觉得我在这里发明了自行车,并且有更好的数据库结构或现有框架来实现这一目标。有人可以推荐什么吗?非常感激,谢谢。

1 个答案:

答案 0 :(得分:0)

这通常被称为“版本控制”或“文档版本控制”。最常见的方法是:

  1. 使用某种方案为同一集合中的每次写入存储完整文档,以确定哪个版本为“当前”
  2. 为每次写入存储完整的文档,其中“当前”版本在一个集合中,旧版本在单独的集合中
  3. 将所有文档版本存储在单个文档中
  4. 仅存储每个版本的增量(更改)
  5. 每种方法都有自己的一套优势和权衡。以下是进一步探索这些方法的一些好资源:

    我不知道在Java中处理这个问题的任何流行框架,这也可能取决于您是否使用ODM(例如Spring Data MongoDB或Morphia)。 Mongooose(Node.js)确实有document versioning