当使用变更提要时,有没有办法在PouchDB中获得文档的所有修订

Is there a way to get all revisions of a document in PouchDB when using the change feed?

本文关键字:PouchDB 文档 有没有      更新时间:2023-09-26

我现在正在摆弄PouchDB。我使用它作为一种在本地存储数据的方式,而无需将其链接到CouchDB。我一直在尝试为一个文档创建一个reverse/undo方法。为此,我想使用之前对"doc"的修订。我在阅读PouchDB文档时看到了更改提要,起初这似乎是获取所有"文档"的所有修订的一种方式。然而,在尝试获得"文档"的所有修订后,我只得到了最新的修订。我尝试了以下方法来获得更改:

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

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

在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()来获取文档的所有修订。但至少我能做我想做的事。

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

db.get(docId,[选项],[回调])

检索由docId指定的文档。

选项除非另有指定,否则所有选项默认为false。

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

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

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

options.open_revs:如果open_revs="所有";或者获取open_revs数组中指定的所有叶修订。叶将按输入数组中指定的顺序返回。