const updateOrder = (id, i) => new Promise((resolve, reject) => { Portfolio.findOneAndUpdate({_id: id}, {order: i + 1}, function (err, data) { if (err) return reject(err) resolve(); }) }); Promise.all(body.map(function (o, i) { return updateOrder(o, i) })).then(() => { return res.json('Success update') }).catch((err) => { return res.status(500).json(err) }) }