背景多個文檔:更新在一個循環
我用PouchDB(IndexedDB的)用於離線NW.js應用程序,我是新來的沒有-SQL。我也使用PouchDB插件Upsert,這個basiclly在後臺執行db.get()和db.put()。
問題:
我動態創建ñ文件和其他功能我想在一個循環中UPSERT功能來更新他們,但我必須回,我想更新文檔。所以循環停止在第一次運行(邏輯上,只是正常的行爲)。
有沒有辦法更新n具有循環中一個函數的文檔?
這裏是我的代碼示例:
var temp = $('#number_discuss_points').val();
for (i = 1; i < temp; i++) {
var v1= $('#discusspoint_heading' + i).val();
var v2= $('#discusspoint_subheading' + i).val();
var v3= $('#point_number' + i).val();
var v4= $('#dpoint_deadline' + i).val();
var v5= $('#responsible_person' + i).val();
var v6= $('#dp_text' + i).val();
db.upsert(id_body + i, function (sheet) {
sheet._id = id_body + i;
sheet.discusspoint_heading = v1;
sheet.discusspoint_subheading = v2;
sheet.point_number = v3;
sheet.dpoint_deadline = v4;
sheet.responsible_person = v5;
sheet.dp_text = v6;
return sheet; //Logically, the functions stops here and return everthing with 1
}).then(function (result) {
console.log(result);
}).catch(function (err) {
console.log(err);
});
}
謝謝!我還沒有完全做到這一點,但這是朝着正確方向邁出的一步。 –
或者,您可以在'for循環'中生成文檔,並使用單個'db.bulkdocs()'操作,這樣會更有效。但是,這假定您已經有了現有的文檔'_rev'數據來傳遞或新的文檔不存在。但是,上面的'db.upsert()'解決方案更加強大,因爲它爲我們提供了這一點。 –
這是一個很好的提示。我會稍後再嘗試。 –