有没有办法在使用更改源时在PouchDB中获取文档的所有修订?

时间:2015-11-02 09:53:35

标签: javascript angularjs pouchdb

我现在正在摆弄PouchDB。我使用它作为一种在本地存储数据的方式,而不将其链接到CouchDB。我一直在尝试做的是为单个文档创建一个恢复/撤消方法。为此,我想使用先前的" doc"的修订版。我在阅读PouchDB文档时遇到了更改提要,这些文档最初似乎是一种获取所有" docs"的所有修订版的方法。但是,在尝试获得" docs"的所有修订版之后我只得到了最新版本。我已尝试以下方法进行更改:

db.changes({
    since: 0,
    style: 'all_docs',
    include_docs: true // eslint-disable-line camelcase
  }).then(function(results) {
    console.log(results);
  }); 

TL; DR如何在PouchDB中获取(或所有)文档的所有修订版?

2 个答案:

答案 0 :(得分:2)

macrog的帮助下,我找到了一种方法来做我想做的事情。简短摘要我想要一种方法来获取我的文档的所有修订,包括已删除的文档。这就是我现在使用的:

db.get(String(id), {
    revs: true, 
    open_revs: 'all' // this allows me to also get the removed "docs"
  }).then(function(found) {
    console.log(found);
  });

当然,我没有使用db.changes()来获取文档的所有修订版。但至少我能够做我想做的事。

答案 1 :(得分:0)

尝试其中一个选项 - 来自pouchdb docs

db.get(docId, [options] ,[callback])

检索由docId指定的文档。

选项 除非另有说明,否则所有选项都默认为false。

options.rev :获取文档的特定修订版。默认为获胜修订版(参见CouchDB指南)。

options.revs :包含文档的修订历史记录。

options.revs_info :包含文档的修订列表及其可用性。

options.open_revs :如果open_revs =" all"则获取所有叶子修订版本。或获取open_revs数组中指定的所有叶修订。叶子将以与输入数组中指定的顺序相同的顺序返回。