couchdb - 查找当前文档和以前版本之间的差异
问题描述
有没有办法确定文档中发生了哪些更改?这是一个文件和它的修订版
{
"_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 已更改。有没有办法找到文档与其先前版本之间的更改?
- 是否有任何内置功能可以跟踪此类更改?
- 是否可以通过设计文档访问文档的修订?
- 如果#2 的答案是“是”,那么是否有人有设计文档的模板可以与之比较?
解决方案
不。如果您想跟踪更改,您可能需要使用适合该目的的数据模型。否则,Couch 会保留文档的修订版本,您可以查询它们以手动计算差异。因此,不能保证不会压缩修订。
不会。设计文档是根据每个文档的最新版本构建的。
...
如果您想确保保留每个文档更改,则需要为每个更改创建一个文档。这些更改可以按 uniqueId 分组,您可以使用 map/reduce 来获取文档的最新值。差异需要手动进行。这样做的好处是您可以轻松地获得文档在特定时间的状态。