2015-11-02 32 views
0

我現在在擺弄PouchDB。我使用它作爲在本地存儲數據而不鏈接到CouchDB的一種方式。我一直在試圖做的是爲單個文檔創建恢復/撤消方法。爲此,我想使用「doc」的以前版本。我在閱讀PouchDB文檔時遇到了更改提要,這似乎是一種獲取所有「文檔」的所有修訂的方法。但是,在試圖獲得「文檔」的所有修訂後,我只獲得了最新版本。我試過下面得到改變:有沒有辦法在使用變更Feed時獲取PouchDB中所有文檔的修訂版本?

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

TL; DR我怎樣才能在一個PouchDB(或全部)文件(S)的所有修訂?

回答

1

隨着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); 
    }); 

授予我沒有loger使用db.changes()獲取文檔的所有修訂。但至少我能夠做我想做的事情。

+0

哎,好的,你已經成功地做到你想要的東西,給一個嘗試@nlawson的解決方案,這傢伙知道什麼他在說! :) – macrog

0

嘗試的選項之一 - 這從pouchdb docs是:

db.get方法(的docId,[選項],[回調])

檢索文檔,被docID規定。

選項 所有選項默認爲false,除非另有說明。

options.rev:取一個文件的具體修改。默認爲獲勝版本(請參閱CouchDB指南)。

options.revs:包括文檔的修訂歷史。

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

options.open_revs:如果open_revs =「all」,則獲取所有葉版本或獲取open_revs數組中指定的所有葉版本。葉子將以與輸入數組中指定的順序相同的順序返回。

+0

謝謝,這讓我更靠近了一步。然而,它遺憾地不能幫助我刪除/刪除「文檔」。 – Mathijs

+0

沒問題,樂意幫忙!你如何刪除文檔?與db.remove(...)??儘量使認沽作爲更新,並設置**「_刪除」:真**我認爲(不知道),你應該用_changes – macrog

+0

我使用db.remove(...)讓他們爲據我所知如果我這樣做或通過執行db.put({_ deleted:true,...}),它應該沒有什麼區別。不太確定你的意思是什麼_改變...你想不想詳細說明? – Mathijs

相關問題