相关疑难解决方法(0)

在MongoDB中实现数据版本控制的方法

您能否分享一下您如何在MongoDB中实现数据版本控制?(我问过关于Cassandra的类似问题.如果你有任何想法,哪个数据库更好,请分享)

假设我需要在简单的地址簿中对记录进行版本控制.(地址簿记录存储为平面json对象).我期待历史:

  • 将很少使用
  • 将一次性使用以"时间机器"的方式呈现它
  • 单个记录的版本不会超过几百个.历史不会过期.

我正在考虑以下方法:

  • 创建新的对象集合以存储记录的历史记录或对记录的更改.它将为每个版本存储一个对象,并引用地址簿条目.这些记录如下:

    {
     '_id': 'new id',
     'user': user_id,
     'timestamp': timestamp,
     'address_book_id': 'id of the address book record' 
     'old_record': {'first_name': 'Jon', 'last_name':'Doe' ...}
    }
    

    可以修改此方法以存储每个文档的版本数组.但这似乎是没有任何优势的较慢的方法.

  • 将版本存储为附加到通讯簿条目的序列化(JSON)对象.我不确定如何将这些对象附加到MongoDB文档.也许是一个字符串数组.(使用CouchDB进行简单文档版本控制后建模)

database-versioning mongodb

289
推荐指数
6
解决办法
11万
查看次数

MongoDB/NoSQL:保持文档更改历史记录

数据库应用程序中相当普遍的要求是跟踪数据库中一个或多个特定实体的更改.我听说这称为行版本控制,日志表或历史表(我确定还有其他名称).在RDBMS中有多种方法可以处理它 - 您可以将所有源表中的所有更改写入单个表(更多日志),或者为每个源表创建单独的历史表.您还可以选择管理应用程序代码中的日志记录或通过数据库触发器.

我正在尝试思考在NoSQL /文档数据库(特别是MongoDB)中对同一问题的解决方案是什么样的,以及如何以统一的方式解决它.它是否像为文档创建版本号一样简单,从不覆盖它们?为"真实"与"已记录"文档创建单独的集合?这将如何影响查询和性能?

无论如何,这是NoSQL数据库的常见场景,如果是这样,是否有一个通用的解决方案?

mongodb nosql

119
推荐指数
4
解决办法
4万
查看次数

标签 统计

mongodb ×2

database-versioning ×1

nosql ×1