Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js (节点:63208)弃用警告:collection.ensureIndex已弃用。改用createIndexes_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js (节点:63208)弃用警告:collection.ensureIndex已弃用。改用createIndexes

Node.js (节点:63208)弃用警告:collection.ensureIndex已弃用。改用createIndexes,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,这个错误是从哪里来的?我没有在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

这个错误是从哪里来的?我没有在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();
问题是它仍然使用collection.ensureIndex,应该在不久的将来由它们更新。要删除该消息,您可以在package.json中使用5.2.8版本进行降级(并删除任何缓存,最后一种方法是卸载该消息,然后使用npm安装mongoose@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()

将remove()替换为deleteOne()或deleteMany()

将count()替换为countDocuments(),除非要计算整个集合中的文档数(无筛选器)。在后一种情况下,使用estimatedDocumentCount()


. 读这个。这只是一个警告,没什么好担心的。点击重复问题的链接,在TLDR中,答案是添加
mongoose.set('useCreateIndex',true)
在使用mongoose.connect之前,您可以使用
{useCreateIndex:true}我个人认为应该让它单独处理。这是一个弃用警告,您不应该太麻烦,因为代码仍在运行,并将在不久的将来升级。因此update()和remove()方法现在已被删除?使用此方法连接DB。connect(“您的DB URL,{useNewUrlParser:true,useCreateIndex:true});我在使用mongoose 5.9.5时遇到了同样的问题,我通过修改到:mongoose.connect(dbUri,{useUnifiedTopology:true,useCreateIndex:true,useNewUrlParser:true})的连接解决了这个错误@cr05s19xx不是真的。因为现在是2020年了,警告还在那里。我用的是猫鼬5.10.11