CouchDB查看包含修订历史记录

Gon*_*ing 2 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?});
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我如何告诉它包含所有修订?

我知道我可以调用 http:// localhost:5984/main/94c4db9eb51f757ceab86e4a9b00cddf

对于每个文档(来自我的应用程序),但实际上不能很好地扩展.

是否有批处理方式来获取修订信息?

任何帮助,将不胜感激!!

Dom*_*nes 6

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

话虽这么说,但只有最新的 _rev数字对任何给定的文档都有用.不仅如此,数据库压缩还将删除所有旧版本.(压实永远不会自动运行,但应该是日常维护的一部分)

您可能已经注意到,您的视图会在视图输出中输出最新的_rev数字value.此外,如果您正在使用include_docs=true,则该_rev数字也会显示在doc您的视图结果部分中.

有关使用CouchDB进行修订历史记录的策略,但它们通常很复杂,通常不建议使用.(查看此问题此博客帖子,了解有关该主题的更多信息)

  • 更多关于CouchDB不是一个版本控制系统,你必须看看这个关于Couch新人的伟大会议[关于CouchDB的10个常见误解](http://youtu.be/BKQ9kXKoHS8?t=11m05s):第4点(11:05) )正是在这个问题上.Joan Touzet的建议:*"如果你需要它,请保留它.为它创建一个新文档.不要覆盖/删除它.为每个单独的事务写一个新文档.视图可以帮助你找到最新的信息."*如果您选择继续使用CouchDB,整个演示文稿绝对值得您花时间 (2认同)