Ответ 1
Ну есть соответствующая документация для просмотра как .update()
, так и .findAndModify()
, который является корневым методом .findOneAndUpdate()
здесь.
Но в основных отличиях есть:
-
update(). Предназначен для выполнения атомарной операции обновления против "одного или нескольких" документов, соответствующих условию запроса в коллекции. Он возвращает количество измененных документов в ответ.
-
findOneAndUpdate(): имеет ли смысл как обрабатывать статут обновления на "сингулярном" документе, так и извлекать содержимое этого "единственного" документа. Возвращаемое состояние зависит от значения "новой" опции, переданной в операцию. Где
true
возвращается "измененный" документ. Гдеfalse
перед внесением каких-либо изменений возвращается "оригинальный" документ. Последняя форма является опцией по умолчанию.
Короче. Один из них предназначен для изменения в "объеме" и не беспокоится о содержимом документа в результате. И другое предназначено для изменения единственного документа и возврата содержимого документа в результат.
Это различие.