Я использую сервер express.js. Я пытаюсь обновить существующие документы в коллекции mongodb используя mongoose с помощью массива объектов (каждый объект имеет свойство _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));
});
}
Но таким образом мне придется обрабатывать асинхронный сценарий и проверять, когда запрос БД для всей итерации завершен, а затем отправлять ответ обратно клиенту с сервера.
Есть ли какой-либо альтернативный подход в мангусте для редактирования/изменения массива объектов за один раз, а затем вызвать обратный вызов?
Примечание*- В каждом объекте массива присутствует _id
, который соответствует значению документа _id
.