I'm fiddling around with PouchDB at the moment. I use it as a way to store data locally without it being linked to CouchDB. What I've been trying to do is to create a revert/undo method for a single doc. For this I would like to use the previous revisions of the "doc". I came across the changes feed while reading the PouchDB documentation, which at first seems to be a way to get all the revisions of the all the "docs". However, after trying to get all the revisions of the "docs" I've only got the latest revision. I've tried the following to get the changes:
db.changes({
since: 0,
style: 'all_docs',
include_docs: true // eslint-disable-line camelcase
}).then(function(results) {
console.log(results);
});
TL;DR how can I get all the revisions of a (or all) document(s) in PouchDB?
With some help of macrog I've found a way to do what I wanted to do. Short summary I wanted a way to get all revisions of my documents, including the ones which had been removed. This is what I use now:
db.get(String(id), {
revs: true,
open_revs: 'all' // this allows me to also get the removed "docs"
}).then(function(found) {
console.log(found);
});
Granted I no loger use db.changes() to get all the revisions of a document. But at least I'm able to do what I wanted to do.
Try one of the options - this it's from pouchdb docs:
db.get(docId, [options], [callback])
Retrieves a document, specified by docId.
Options All options default to false unless otherwise specified.
options.rev: Fetch specific revision of a document. Defaults to winning revision (see the CouchDB guide).
options.revs: Include revision history of the document.
options.revs_info: Include a list of revisions of the document, and their availability.
options.open_revs: Fetch all leaf revisions if open_revs="all" or fetch all leaf revisions specified in open_revs array. Leaves will be returned in the same order as specified in input array.
来源:https://stackoverflow.com/questions/33474864/is-there-a-way-to-get-all-revisions-of-a-document-in-pouchdb-when-using-the-chan