背景:更新複数のドキュメント
私はオフラインNW.js AppのPouchDB(のIndexedDB)を使用して、私はノー-SQLに新たなんです。私はまた、PouchDBプラグインUpsertを使用しています。これは基本的に、バックグラウンドでdb.get()とdb.put()を実行します。
問題:私は動的にn個文書を作成し、別の関数に私は、ループ内のアップサート機能でそれらすべてを更新したいが、私はリターン私は更新したい文書を持って
。したがって、ループは最初の実行で停止します(論理的には正常な動作)。
n文書を1つの機能でループで更新する方法はありますか?
ここに私のコード例があります:
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()'ソリューションは、私たちのためにこれを処理するので、より堅牢です。 –
それは良いヒントです。私は後でそれを試してみる。 –