不支持选项 [useFindAndModify]

Bil*_*han 7 mongoose mongodb node.js

使用 mongodb-4.0.10 和 mongoose-5.2.10

添加useFindAndModify: false到 mongoose 配置以避免出现如下警告:

DeprecationWarning: Mongoose:findOneAndUpdate()findOneAndDelete()没有将useFindAndModify选项设置为 false 的情况均已弃用。

DeprecationWarning:collection.findAndModify 已弃用。请改用 findOneAndUpdate、findOneAndReplace 或 findOneAndDelete。

但现在运行应用程序时出现“不支持选项 [useFindAndModify]”。

Kun*_*agi 11

对于面临此问题的其他人,useFindAnyModify如果您使用 mongoose 版本 6+,则不受支持。

为了解决这个问题,我们可以删除useFindAnyModify或降级 mongoose 版本以使用 v5+。


Ale*_*Dim 1

首先,将 mongoose 更新到 ^latest ( 5.8.X) 版本。

然后重写你的代码并尝试像这样使用它

mongoose.connect(`mongodb+srv://${login}:${password}@${hostname}/${auth_db}`, {
    useNewUrlParser: true,
    useFindAndModify: false,
    retryWrites: true,
    w: "majority",
});

mongoose.Promise = global.Promise;
Run Code Online (Sandbox Code Playgroud)

另外,根据mongoose 文档findOneAndUpdate您可以findOne通过触发结果来使用和更新文档.save