Hintergrund:aktualisieren mehr als ein Dokument in einer Schleife
Ich benutze PouchDB (IndexedDB) für eine Offline-NW.js App und ich bin neu in No-SQL. Ich benutze auch das PouchDB Plugin Upsert, das tut im Hintergrund eine db.get() und db.put().
Problem:
I dynamisch n Dokumente erstellen und in einer anderen Funktion möchte ich sie alle mit der Upsert Funktion in einer Schleife aktualisieren, aber ich muss Rückkehr das Dokument, das ich aktualisieren möchten. Also stoppt die Schleife beim ersten Lauf (logisch, nur normales Verhalten).
Gibt es eine Möglichkeit, n Dokumente mit einer Funktion in einer Schleife zu aktualisieren?
Hier ist mein Codebeispiel:
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);
});
}
Thank you! Ich habe es noch nicht vollständig gemacht, aber dies ist ein Schritt in die richtige Richtung. –
Alternativ könnten Sie die Dokumente in der 'for-Schleife' generieren und eine einzige 'db.bulkdocs()' -Operation verwenden, die effizienter wäre. Dies setzt jedoch voraus, dass Sie die vorhandenen doc _rev-Daten bereits weitergeben oder die neuen Dokumente nicht bereits vorhanden sind. Allerdings ist die obige 'db.upsert()' Lösung robuster, da sie dies für uns erledigt. –
Das ist ein guter Hinweis. Ich werde es später versuchen. –