我知道为什么会收到此错误?
这是连接线
mongoose.connect("mongodb+srv://danielkmx:"+process.env.MONGO_ATLAS_PW+"@node-rest-shop-5xfup.mongodb.net/test",
{
useMongoClient:true
});
答案 0 :(得分:6)
我遇到了同样的错误,当我将猫鼬包更新到最新版本时,它得到解决。
答案 1 :(得分:1)
使用以下版本的猫鼬帮我解决了这个问题
npm i mongoose@5.7.0
答案 2 :(得分:0)
我认为到目前为止,您已经找到了解决该问题的方法,但是如果其他人也有同样的问题,我会进行解释
因此,一般来说,我们现在有2种协议(1- mongodb + srv://和2- mongodb://)可以连接到mongodb数据库。
这两个之间的主要区别是mongodb及其核心版本,您可以在package-lock.json文件中找到它,类似于下面的代码:
"mongodb": {
"version": "3.0.0", //Your MongoDB version
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.0.tgz",
"integrity": "",
"requires": {
"mongodb-core": "3.0.0"
}
},
"mongodb-core": {
"version": "3.0.0", //Your MongoDB version
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.0.tgz",
"integrity": "",
"requires": {
"bson": "1.0.9",
"require_optional": "1.0.1"
}
},
如果要使用mongodb + srv://版本,则需要版本3.0.0或更高版本的驱动程序,可以通过以下方式简单地完成此操作:
npm install mongodb@3.0.0
**或更高
希望对您有帮助,如果该解决方案对您有用,请确认其他用户不会再遇到我们的问题
答案 3 :(得分:0)
我同意解决方案,并在此处对问题和非常正确的答案投了赞成票。
万一有人要更新最新的软件包,我建议使用npm-check-updates(https://www.npmjs.com/package/npm-check-updates)进行平滑更新。
安装npm-check-updates:
$ sudo npm install -g npm-check-updates
检查所用软件包的最新更新:
$ ncu
更新软件包:
$ ncu -u
然后,安装更新的软件包:
$ npm install
答案 4 :(得分:0)
我遇到同样的问题,但是使用了mongorestore
命令。我做了brew update mongodb
,导致了以下错误。
unknown or unsupported macOS version: :mountain_lion
然后我通过运行brew install mongodb/brew/mongodb-database-tools
卸载了mongodb并安装了数据库工具,这为我解决了问题,并且我能够使用以下命令恢复数据库:
mongorestore --uri=mongodb+srv://<user>:<password>@cluster0.wtdv4.mongodb.net/<db-name> --db <db-name> <input-dir>
答案 5 :(得分:0)
虽然我需要 MongoDB 和 mongoose 的版本,因为我正在为应用程序制作套接字包,但我的套接字包不是最新的,因为它不起作用,所以关键是确保包更新以适应在新的变化中。