CouchDB查看包含修订历史记录

时间:2015-02-05 21:26:39

标签: 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?});
    }
}

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

我知道我可以打电话 http://localhost:5984/main/94c4db9eb51f757ceab86e4a9b00cddf

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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

将CouchDB用于修订历史记录的策略确实存在,但它们通常很复杂,通常不建议使用。 (查看this questionthis blogpost了解有关该主题的更多信息)