来自CouchDB的修订信息

来自CouchDB的修订信息,couchdb,Couchdb,如果我在CouchDB上有一个包含多个修订的文档,我可以要求提供如下修订列表: localhost:5984/documents/document_guid?revs_info=true { _id: document_guid, _rev: "2-rev_guid_B", _revs_info: [ {rev: "2-rev_guid_B", status: "available"}, {rev: "1-rev_guid_A", status: "available"

如果我在CouchDB上有一个包含多个修订的文档,我可以要求提供如下修订列表:

localhost:5984/documents/document_guid?revs_info=true

{
    _id: document_guid,
    _rev: "2-rev_guid_B",
    _revs_info: [ {rev: "2-rev_guid_B", status: "available"}, {rev: "1-rev_guid_A", status: "available"} ],
    etc: "stuff"
}
我可以通过以下请求请求以前的版本:

localhost:5984/documents/document_guid?rev=1-rev_guid_A

{
    _id: document_guid,
    _rev: "1-rev_guid_A",
    etc: "stuff in a previous life"
}
我本来希望能同时做这两件事,但似乎不管用

localhost:5984/documents/document_guid?rev=1-rev_guid_A&revs_info=true

// I wanted

{
    _id: document_guid,
    _rev: "1-rev_guid_A",
    _revs_info: [ {rev: "2-rev_guid_B", status: "available"}, {rev: "1-rev_guid_A", status: "available"} ],
    etc: "stuff in a previous life"
}

// I get

{
    _id: document_guid,
    _rev: "1-rev_guid_A",
    etc: "stuff in a previous life"
}
有人知道我想要的是可能的吗?如果有,我怎么做


谢谢

在CouchDB中,尝试将其“修订版”用于修订系统被认为是最常见的错误之一

计划将“修订版”重命名为“mvcc”,以防止出现此错误。实际上,它们应该只被replicator使用,并用于检测并发更新


如果你需要真正的修订,你就必须实施它们。

在CouchDB中,尝试将其“修订”用于修订系统被认为是最常见的错误之一

计划将“修订版”重命名为“mvcc”,以防止出现此错误。实际上,它们应该只被replicator使用,并用于检测并发更新


如果你需要真正的修订,你就必须实施它们。

我看到同样的讨论在这里突然出现,但是如果我想要对文档的更改进行不可更改的审计跟踪,我为什么要实施自己的修订系统呢?我也不想回到以前的版本。我的假设是,正是这个事实——你不能做还原——使得CouchDB的“修订版”对于一个实际的修订版系统来说很糟糕,而不是别的什么?因为它不是一个修订版系统:修订版在压缩时被擦除(可能在任何时候发生),它们不会被复制,它们不能像文档那样容易地使用(正如您在问题中所注意到的)。是的,couchdb不是为用户管理修订而设计的,尽管您可以实现一个更新处理程序,以您想要的方式对文档进行版本控制。这是一个有趣的问题-如果我不能阻止压缩发生,那么我将丢失旧的修订数据-绝对不是一件好事@sinm,我发现除了复制内置功能之外,很难将编写更新处理程序来对文档进行版本控制!有没有其他确凿的理由说明CouchDB不应该以这种方式使用?我在这里看到过同样的讨论,但是如果我想对文档的更改进行不可更改的审计跟踪,有没有理由说明我想要实现自己的修订系统?我也不想回到以前的版本。我的假设是,正是这个事实——你不能做还原——使得CouchDB的“修订版”对于一个实际的修订版系统来说很糟糕,而不是别的什么?因为它不是一个修订版系统:修订版在压缩时被擦除(可能在任何时候发生),它们不会被复制,它们不能像文档那样容易地使用(正如您在问题中所注意到的)。是的,couchdb不是为用户管理修订而设计的,尽管您可以实现一个更新处理程序,以您想要的方式对文档进行版本控制。这是一个有趣的问题-如果我不能阻止压缩发生,那么我将丢失旧的修订数据-绝对不是一件好事@sinm,我发现除了复制内置功能之外,很难将编写更新处理程序来对文档进行版本控制!有没有其他确凿的理由说明CouchDB不应该以这种方式使用?