【问题标题】:Invalid mongodb uri Must begin with "mongodb://"无效的 mongodb uri 必须以“mongodb://”开头
【发布时间】:2018-08-05 10:27:00
【问题描述】:

知道为什么会出现这个错误吗?

这是连接线

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

【问题讨论】:

  • 您将错误的更改“mongodb+srv://”连接到“mongodb://”+srv+"://"
  • npmjs.com/package/npm-check-updates 我也遇到了同样的错误。通过这个链接解决了。你需要更新你的包。

标签: node.js mongoose


【解决方案1】:

虽然我需要 MongoDB 和 mongoose 的版本,因为我正在为应用程序制作 socket 包,但我的 socket 包不是最新的,因为它不起作用,所以关键是确保更新包以适应在新的变化中。

【讨论】:

    【解决方案2】:

    使用以下版本的猫鼬帮我解决了这个问题

    npm i mongoose@5.7.0
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但使用了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>

      【讨论】:

        【解决方案4】:

        我同意该解决方案,并在此处对问题和非常正确的答案投了赞成票。

        如果有人想更新最新的包,我建议 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
        

        【讨论】:

          【解决方案5】:

          我想现在你已经找到了这个问题的答案,但我会解释一下,以防其他人有同样的问题

          所以通常我们现在有 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
          

          **或更高

          我希望这对您有所帮助,如果此解决方案对您有效,请确认其他用户不会再次遇到我们的问题

          【讨论】:

          • 问题是与猫鼬连接。你怎么能解决这个问题
          • 亲爱的@Yilmaz,因为错误消息已被删除,当我看到这个问题时,我正在使用 MongoDB,但协议出现了一些错误(1- mongodb+srv:// & 2- mongodb ://) 和 MongoDB 版本,我认为与旧版本和新版本的 MongoDB 分享潜在问题会很有帮助(如果您也在使用 mongoose,则可能会发生此错误)如果您遇到任何特定错误,请分享它的错误信息是一个问题或这里,我会看一下,如果可以的话,我一定会提供帮助:)
          • 亲爱的@MehdiRoshanFekr :) 我解决了这个问题。我安装了新版本的猫鼬。谢谢。我还有另一个问题。我连接到猫鼬,但它没有写入数据库。我使用猫鼬并在猫鼬连接选项中添加了“dbName =“myDb”,但它不起作用。热烈的问候:)
          【解决方案6】:

          我遇到了同样的错误,当我将 mongoose 包更新到最新版本时它得到了解决。

          【讨论】:

          • 你升级到哪个版本?
          • @LukAron 很久以前了。我不记得了。目前我用的是5.3.16
          • 我将 Mongoose 升级到 5.10.11,它能够处理带有“+srv”的新连接字符串格式。
          猜你喜欢
          • 1970-01-01
          • 2010-09-12
          • 2019-05-19
          • 2018-02-22
          • 1970-01-01
          • 2019-11-22
          • 1970-01-01
          • 2015-02-15
          • 2016-04-05
          相关资源
          最近更新 更多