[英]Ionic 2 couchDB pouchDB syning issue
我正在使用CouchDB和PouchDB構建Ionic 2測驗應用程序,但面臨此同步問題。
我的ouchdb服務器上的文件超過了20k,並且將繼續增加。 文件被標記為主題文檔和測驗文檔。 主題文件基本上有測驗文件清單。
我大約有200個主題文檔,其余的是測驗文檔。
現在,如果我使用以下代碼進行雙向同步
this.db = new PouchDB('mydb');
this.remote ='http://server_ip:5984/mydb';
this.db.sync(this.remote, options);
該應用程序啟動后,它將立即開始從沙發數據庫服務器下載所有20k文件,這使該應用程序非常慢。 我想阻止那個。 我只想在需要時才下載文件。
示例:當應用程序加載時,我只希望應用程序從服務器下載一個文檔,說“ mainTopic”。此文檔包含子主題列表,而這些子主題又包含測驗列表。 所以我只想在調用特定主題或測驗時才下載文件
this.DataService.getDocument('mainTopic').then((result) => {
this.data = result;
});
//Function in my dataservice
getDocument(id) {
if(id==null || id=='')
{
id='quiz-578f4b9cb991f';
}
console.log('Going to fetch '+id);
return new Promise(resolve => {
this.db.get(id).then((result) =>{
this.data=result;
resolve(this.data);
}).catch((error) => {
console.log(error);
});
});
}
我已經閱讀了一些有關過濾器的內容,但是我不確定如何使用它們。 請指教
首先,您將需要在CouchDB中構建過濾器。 過濾器如下所示:
{
"_id": "_design/global",
"language": "javascript",
"filters": {
"byPage": "function(doc, req) { return doc.page == req.query.page }"
}
}
基本上,過濾器功能接受文檔和請求對象。 從請求對象中,可以獲取參數。 篩選器非常簡單。 如果文檔通過過濾器,則需要返回true,否則返回false。
使用示例的過濾器“ byPage”,我可以僅同步與特定頁面關聯的數據。
有關PouchDB和CouchDB篩選的復制的更多信息,請訪問此站點 。
有關CouchDB過濾器功能的完整文檔,請查看此鏈接 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.