Я не могу найти какое-либо описание того, как параметр влияет на функцию в любом месте. Единственное, что я обнаружил, это то, что он изменит то, что возвращается после ожидания exec (). «update» возвращает объект opResults, «find» возвращает массив, «findOne» возвращает единственный объект, возможно нулевой. Я не понимаю, почему, если я передам 'findOne', база данных не будет обновлена.
const q = User.findOneById(req.user.id);
q.updateOne({ "$push": { "posts": { "title": "new post title" } }});
const user = await q.exec('findOne');
https://mongoosejs.com/docs/api.html#query_Query-exec