res.status(201).json
находится в цикле forEach
, поэтому вы получаете вышеуказанную ошибку: вы можете отправлять данные только один раз.
Чтобы это исправить, вам в основном нужно отправить операции deleteOne
один раз и использовать bulkWrite()
, поскольку это позволяет отправлять несколько операций deleteOne в MongoDBСервер в одной команде.Он принимает входные данные в виде массива объектов, подобных следующему
Booking.bulkWrite([
{ deleteOne: { filter: { cid: 1, year: 2007 } } },
{ deleteOne: { filter: { cid: 2, year: 2007 } } },
{ deleteOne: { filter: { cid: 3, year: 2007 } } },
{ deleteOne: { filter: { cid: 4, year: 2007 } } },
])
Так что в вашем случае вы можете сопоставить массив req.body.courts
с указанными выше deleteOne
операциями как
exports.deleteBooking = (req, res, next) => {
Booking.bulkWrite(
req.body.courts.map(({ cid, day }) => ({
deleteOne: { filter: { cid, year: day.year } }
}))
).then(message => {
res.status(201).json({ message })
}).catch(error => {
res.status(500).json({ error })
})
}