В новой версии 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);
});