ฉันใช้เซิร์ฟเวอร์ express.js ฉันกำลังพยายามอัปเดตเอกสารที่มีอยู่ในคอลเลกชัน mongodb โดยใช้พังพอน ด้วยอาร์เรย์ของวัตถุ (แต่ละวัตถุมีคุณสมบัติ _id
และค่าของมันสอดคล้องกับแต่ละเอกสาร _id
)
วิธีหนึ่งคือการวนซ้ำผ่านอาร์เรย์และดำเนินการ findByIdAndUpdate()
for(var i=0; i < expenseListToEdit.length; i++) {
var expense = expenseListToEdit[i];
Expense.findByIdAndUpdate(expense._id, expense, function(err, model) {
if (err) {
console.log('Error occurred while editing expense');
}
console.log('model: ' + util.inspect(model));
});
}
แต่ด้วยวิธีนี้ ฉันจะต้องจัดการกับสถานการณ์แบบอะซิงโครนัส และจะต้องตรวจสอบว่าเมื่อใดที่การสืบค้น db สำหรับการวนซ้ำทั้งหมดเสร็จสิ้น จากนั้นจึงส่งเฉพาะการตอบกลับไปยังไคลเอนต์จากเซิร์ฟเวอร์เท่านั้น
มีวิธีอื่นในพังพอนในการแก้ไข / แก้ไขอาร์เรย์ของวัตถุในครั้งเดียวแล้วโทรกลับหรือไม่?
หมายเหตุ*- แต่ละออบเจ็กต์อาร์เรย์มี _id
ปัจจุบัน ซึ่งตรงกับค่าเอกสาร _id