无效的mongodb uri必须以“mongodb://”开头

时间:2018-02-26 02:02:22

标签: node.js mongoose

我知道为什么会收到此错误?

这是连接线

mongoose.connect("mongodb+srv://danielkmx:"+process.env.MONGO_ATLAS_PW+"@node-rest-shop-5xfup.mongodb.net/test",
{
    useMongoClient:true
});

6 个答案:

答案 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 的版本,因为我正在为应用程序制作套接字包,但我的套接字包不是最新的,因为它不起作用,所以关键是确保包更新以适应在新的变化中。