此错误来自何处?我不在任何地方的Nodejs应用程序中使用ensureIndex
或createIndex
。我正在使用纱线包管理器。
这是我在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();
答案 0 :(得分:36)
问题在于mongoose仍使用collection.ensureIndex,并应在不久的将来对其进行更新。为了摆脱此消息,您可以通过在package.json中使用5.2.8版本来降级(并删除所有缓存,最后的方法是使用 npm install mongoose@5.2.8 卸载它)。 ):
“猫鼬”:“ ^ 5.2.8”
编辑: 截至此编辑,Mongoose现在处于v5.4.13。根据他们的文档,这些是过时警告的修复方法...
mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
用updateOne(),updateMany()或replaceOne()替换update()
用deleteOne()或deleteMany()替换remove()。
用countDocuments()替换count(),除非您要计算整个集合中有多少个文档(无过滤器)。在后一种情况下,请使用EstimatedDocumentCount()。