问题
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?
回答1:
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.
回答2:
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