Проблема NodeJS с MongoDB: DeprecationWarning: collection.findAndModify устарела - PullRequest
0 голосов
/ 08 декабря 2018

Я использую каркас expressjs для nodejs с MongoDB.Когда я запускаю запрос, я получаю эту проблему: -

(node:29411) DeprecationWarning: collection.findAndModify is deprecated. Use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead.

Я использую MongoDB 4.0 версия.

И есть мой запрос, которыйЯ выполняю

User
    .findByIdAndUpdate(item._id, {name: "Test name"}, function (err, user) {

    if (err || !user) {
        return res.status(401).json({ errors: "Invalid User." });
    }

    return res.render('view', {
        error: error,
        info: info,
        message: message,
        item: user
    });

});

Любая помощь будет оценена.

Заранее спасибо

1 Ответ

0 голосов
/ 08 декабря 2018

Предупреждение об устаревании связано с изменениями в драйвере MongoDB Node.js.Mongoose предоставляет опции для их обхода.

Относительно предупреждения об устаревании для функции collection.findAndModify, в соответствии с API Mongoose docs , поскольку метод MongOindOneAndUpdate () предшествует findOneAndUpdate драйвера MongoDB (), Mongoose по умолчанию использует драйвер findAndModify () драйвера MongoDB.Эта функция findAndModify () теперь устарела, и поэтому вы получаете предупреждения.

Вместо этого вы можете настроить Mongoose для использования функции findOneAndUpdate () драйвера MongoDB, установив для глобальной функции useFindAndModify () значение false.По умолчанию это правда.

Сделайте это:

mongoose.set('useFindAndModify', false)

Это решит это.Вы должны знать, что вы также можете передать это через опции подключения к мангусте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...