2013-02-24 100 views
10

连接在mongolab创建的MongoDB我创建了mongolab 一个MongoDB实例它为我提供了一个连接URI。通过Java应用程序

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

我用下面的Java代码连接到我的数据库 -

 Mongo m = new Mongo(); 
    com.mongodb.DBAddress dba=new DBAddress("mongodb://admin:[email protected]:41177/myclouddb"); 
     m.connect(dba); 

但是,这将引发一个NumberFormatException异常

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

我到底做错了什么?

回答

20

这是一个MongoDB URI。

而不是将它传递给DBAddress只是将它传递给MongoURI,然后将其传递给Mongo实例。

String textUri = "mongodb://admin:[email protected]:41177/myclouddb"; 
MongoURI uri = new MongoURI(textUri); 
Mongo m = new Mongo(uri); 

你也应该考虑升级到latest驱动器和切换到MongoClient类作为Mongo类现在已经过时。

String textUri = "mongodb://admin:[email protected]:41177/myclouddb"; 
MongoClientURI uri = new MongoClientURI(textUri); 
MongoClient m = new MongoClient(uri); 
+0

非常感谢抢.. – user1946152 2013-02-24 16:13:06

+0

有任何possibilitiesto设置两个主机与MongoURI – 2015-01-13 12:23:39

+0

的用户名和密码,你应该能够添加主机列表/端口作为一个逗号分隔的列表:MongoDB的://管理:[email protected]:41177,ds041178.mongolab.com:41177/myclouddb。我不确定所有驱动程序都支持这种格式,但它在规范中:http://docs.mongodb.org/manual/reference/connection-string/ – 2015-01-15 01:55:15

相关问题