通过java应用程序连接在mongolab中创建的mongodb

use*_*152 10 java mongodb mlab

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

   mongodb://<dbuser>:<dbpassword>@ds041177.mongolab.com:41177/myclouddb
Run Code Online (Sandbox Code Playgroud)

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

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

但是这会抛出NumberFormatException

   java.lang.NumberFormatException: For input string: ""
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Rob*_*ore 21

这是一个MongoDB URI.

而不是将它传递给一个DBAddress只是传递给a MongoURI然后将其传递给Mongo实例.

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

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

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