【问题标题】:connecting a mongodb created in mongolab through a java application通过 java 应用程序连接在 mongolab 中创建的 mongodb
【发布时间】:2013-02-09 17:13:05
【问题描述】:

我在 mongolab 中创建了一个 mongodb 实例 它为我提供了一个连接 URI。

   mongodb://<dbuser>:<dbpassword>@ds041177.mongolab.com:41177/myclouddb

我使用以下 java 代码连接到我的数据库-

      Mongo m = new Mongo();
     com.mongodb.DBAddress dba=new DBAddress("mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb");
        m.connect(dba);

但这会引发 NumberFormatException

   java.lang.NumberFormatException: For input string: ""

我做错了什么?

【问题讨论】:

    标签: java mongodb mlab


    【解决方案1】:

    这是一个 MongoDB URI。

    与其将其传递给DBAddress,不如将​​其传递给MongoURI,然后将其传递给Mongo 实例。

    String textUri = "mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb";
    MongoURI uri = new MongoURI(textUri);
    Mongo m = new Mongo(uri);
    

    您还应该考虑升级到latest 驱动程序并切换到MongoClient 类,因为Mongo 类现已弃用。

    String textUri = "mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb";
    MongoClientURI uri = new MongoClientURI(textUri);
    MongoClient m = new MongoClient(uri);
    

    【讨论】:

    • 有没有可能在 MongoURI 中设置两个具有用户名和密码的主机
    • 您应该能够将主机/端口列表添加为逗号分隔列表:mongodb://admin:password@ds041177.mongolab.com:41177,ds041178.mongolab.com:41177/我的云数据库。我不确定所有驱动程序都支持这种格式,但它在规范中:docs.mongodb.org/manual/reference/connection-string
    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多