背景多个文档:更新在一个循环
我用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()'解决方案更加强大,因为它为我们提供了这一点。 –
这是一个很好的提示。我会稍后再尝试。 –