首页 > 解决方案 > 查找当前文档和以前版本之间的差异

问题描述

有没有办法确定文档中发生了哪些更改?这是一个文件和它的修订版

{
  "_id": "panel100000",
  "_rev": "1-b4f55d0e03fbfaef0822a0607d5d6ad0",
    "name": "Maya Jambalaya",
    "maritalstatus": "Married",
    "employed": "Full time",
    "education": "College graduate"
  }

{
  "_id": "panel100000",
  "_rev": "2-caab684a341da5185546a028cfb5b0d9",
    "name": "Maya Papaya",
    "maritalstatus": "Married",
    "employed": "Full time",
    "education": "College graduate"
  }

在此示例中,name 和 maritalstatus 已更改。有没有办法找到文档与其先前版本之间的更改?

  1. 是否有任何内置功能可以跟踪此类更改?
  2. 是否可以通过设计文档访问文档的修订?
  3. 如果#2 的答案是“是”,那么是否有人有设计文档的模板可以与之比较?

标签: couchdb

解决方案


  1. 不。如果您想跟踪更改,您可能需要使用适合该目的的数据模型。否则,Couch 会保留文档的修订版本,您可以查询它们以手动计算差异。因此,不能保证不会压缩修订。

  2. 不会。设计文档是根据每个文档的最新版本构建的。

  3. ...

如果您想确保保留每个文档更改,则需要为每个更改创建一个文档。这些更改可以按 uniqueId 分组,您可以使用 map/reduce 来获取文档的最新值。差异需要手动进行。这样做的好处是您可以轻松地获得文档在特定时间的状态。


推荐阅读