【发布时间】:2011-05-10 06:20:43
【问题描述】:
您能否分享您的想法,您将如何在 MongoDB 中实现数据版本控制。 (我已经问过similar question regarding Cassandra。如果您有任何想法哪个数据库更好,请分享)
假设我需要对一个简单地址簿中的记录进行版本化。 (通讯录记录存储为平面 json 对象)。我希望历史:
- 不常使用
- 将一次性全部用于以“时间机器”的方式呈现它
- 单个记录的版本不会超过几百个。 历史不会过期。
我正在考虑以下方法:
-
创建一个新的对象集合来存储记录的历史记录或对记录的更改。它会为每个版本存储一个对象,并引用地址簿条目。此类记录如下所示:
{ '_id': '新id', “用户”:用户 ID, “时间戳”:时间戳, 'address_book_id': '通讯录记录的id' 'old_record': {'first_name': 'Jon', 'last_name':'Doe' ...} }可以修改此方法以存储每个文档的版本数组。但这似乎是一种较慢的方法,没有任何优势。
将版本存储为附加到地址簿条目的序列化 (JSON) 对象。我不确定如何将此类对象附加到 MongoDB 文档。也许作为一个字符串数组。 (Modelled after Simple Document Versioning with CouchDB)
【问题讨论】:
-
我想知道问题得到解答后情况是否发生了变化?我对 oplog 了解不多,但当时有这种情况吗,会有所不同吗?
-
我的方法是将所有数据视为时间序列。
标签: mongodb database-versioning