(node: 63208)不推荐使用 DerecationPolice: Collection.ensureIndex。改为使用 createIndex

这个错误从何而来?我没有在我的 Nodejs 应用程序的任何地方使用 ensureIndexcreateIndex。我用纱线包装经理。

这是我在 index.js中的代码

import express from 'express';
import path from 'path';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
import Promise from 'bluebird';


dotenv.config();
mongoose.Promise = Promise;
mongoose.connect('mongodb://localhost:27017/bookworm', { useNewUrlParser: true });


const app = express();
112393 次浏览

问题在于 猫鼬仍然使用 Collection.ensureIndex,并且应该在不久的将来由它们进行更新。要删除消息,可以在 package.json 中使用版本5.2.8进行降级(并删除任何缓存,最后的手段是卸载它,使用 Npm install monose@5.2.8安装它) :

“猫鼬”: “ ^ 5.2.8”

编辑: 截至本次编辑,Mongoose 现在是 v5.4.13。根据他们的文档,这些是对弃用警告的修复..。

mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);

将 update ()替换为 updateOne ()、 updateMany ()或 replaceOne ()

将 move ()替换为 delete teOne ()或 delete temany ()。

将 count ()替换为 CountDocument () ,除非您想计算整个集合中有多少文档(没有过滤器)。在后一种情况下,使用 EstiatedDocumentCount ()。