Model.findOneAndUpdate() больше не принимает обратный вызов?

В новой версии Mongoose 5.11.0 было объявлено, что обратный вызов больше не принимается в методе Model.findOneAndUpdate(). Это решение было принято разработчиками Mongoose в рамках улучшения производительности и устранения возможных проблем с асинхронными функциями.

Ранее, при использовании метода Model.findOneAndUpdate(), можно было передавать обратный вызов в качестве последнего аргумента. Обратный вызов исполнялся после того, как операция обновления была выполнена. В новой версии Mongoose, вместо этого, метод Model.findOneAndUpdate() возвращает экземпляр запроса, на котором можно вызвать метод .then() для выполнения действий после обновления.

Такое изменение имеет много преимуществ. Во-первых, код становится более лаконичным и понятным, так как не нужно писать дополнительный код для обработки обратного вызова. Во-вторых, возможно параллельное выполнение нескольких запросов к базе данных, что может улучшить производительность приложения.

Пример:

Model.findOneAndUpdate(query, update, options)

.then(result => {

console.log(result);

})

.catch(error => {

console.error(error);

});