2013-02-24 10 views
10

i erstellt eine mongodb Instanz in mongolab Es mir URI mit einer Verbindung zur Verfügung gestellt.eine mongodb in mongolab durch eine Java-Anwendung erstellt Verbindungs ​​

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

Ich benutzte den folgenden Java-Code zu meinem database-

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

Aber das wirft ein Number

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

Was mache ich falsch zu verbinden?

Antwort

20

Das ist ein MongoDB URI.

Anstatt es an eine DBAddress zu übergeben, übergeben Sie es einfach an eine MongoURI und dann diese an die Mongo Instanz übergeben.

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

Sie sollten auch auf die latest Fahrer betrachten Upgrade und die Umstellung auf die MongoClient Klasse als die Mongo Klasse jetzt veraltet.

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

vielen Dank rob .. – user1946152

+0

Gibt es eine possibilitiesto gesetzt zwei Host mit Benutzernamen und Passwort in MongoURI –

+0

Sie sollten die Liste der Host/Ports als kommagetrennte Liste hinzufügen können: mongodb: // Admin : [email protected]: 41177, ds041178.mongolab.com: 41177/myclouddb. Ich bin mir nicht sicher, ob alle Treiber dieses Format unterstützen, aber es ist in der Spezifikation: http://docs.mongodb.org/manual/reference/connection-string/ –