包含修订历史记录的CouchDB视图

包含修订历史记录的CouchDB视图,couchdb,Couchdb,我对CouchDB很陌生。已缺少SQL 无论如何,我需要创建一个视图,该视图将显示文档的一些属性以及所有修订ID 像这样的 function(doc) { if (doc.type == 'template') { emit(doc.owner, {_id: doc._id, _rev: doc._rev, owner: doc.owner, meta: doc.meta, key: doc.key, revisions_ids: What goes here?});

我对CouchDB很陌生。已缺少SQL

无论如何,我需要创建一个视图,该视图将显示文档的一些属性以及所有修订ID

像这样的

function(doc) {
    if (doc.type == 'template') {
        emit(doc.owner, {_id: doc._id, _rev: doc._rev, owner: doc.owner, meta: doc.meta, key: doc.key, revisions_ids: What goes here?});
    }
}
但是我如何告诉它包含所有的修改

我知道我可以打电话

对于每个文档(从我的应用程序),但这确实不能很好地扩展

是否有批量方式获取修订信息


任何帮助都将不胜感激

CouchDB修订版不是版本控制系统。它们仅用于确保写入一致性。(并防止在并发写入期间需要锁)

也就是说,对于任何给定的文档,只有最新的
\u rev
编号才有用。不仅如此,数据库压缩还将删除所有旧版本。(压实不会自动进行,但应作为日常维护的一部分)

正如您可能已经注意到的,您的视图在视图输出的
值中输出最新的
\u rev
编号。此外,如果您使用的是
include_docs=true
,则查看结果的
文档部分也会显示
\u rev
编号


使用CouchDB进行修订历史记录的策略确实存在,但它们通常比较复杂,通常不推荐使用。(查看并获取有关该主题的更多信息)

感谢您就这一事实对我进行的教育。我是沙发新手,从一位离开公司的同事那里继承了一套工作制度。我认为他在设计系统时选择的方法是假设只有一个节点,而且永远不会紧凑。我熟悉oracle,认为我可以用它重建后端,但是否有更合适的noSQL系统更适合跟踪版本?更多关于CouchDB不是版本控制系统,你得看一看这场为沙发新来者举办的盛大会议:第4点(11:05)正是关于这个问题的。Joan Touzet的建议:“如果需要,保留它。为它创建一个新文档。不要覆盖/删除它。为每个事务编写一个新文档。视图可以帮助您找到最新信息。”如果您选择继续与CouchDB合作,整个演示绝对值得您花费时间