2016-11-17 74 views
0

我試圖通過MongoDB中的連接字符串設置maxPoolSize,後面跟着這段documentation。這裏是我的連接字符串:連接字符串中的MongoDB選項被解釋爲數據庫名稱

mongodb://localhost:27017/databaseName?maxPoolSize=200 

然而,除了具有數據庫的databaseNamemaxPoolSize等於200,我得到了一個名爲的databaseName maxPoolSize = 200數據庫?這就是說,Mongo將所有的東西(名稱+選項)作爲數據庫名稱。

一些信息:

  • 蒙戈版本:3.2.10
  • 連接使用嗎啡1.1.0

我會很樂意提供任何進一步的信息。

回答

1

如果你正在做

MongoClient client = new MongoClient(
"mongodb://localhost:27017/databaseName?maxPoolSize=200"); 

然後不這樣做,而不是做如下,

MongoClient client = new MongoClient(
new MongoClientURI(
"mongodb://localhost:27017/databaseName?maxPoolSize=200")); 

,因爲你需要告訴您傳遞一些選項一起連接字符串蒙戈。

如果您認爲我誤解了您的問題。請張貼您想要獲得連接的代碼片段。

+0

兩個@satish和@Veeram的答案是正確的。我正在給予@satish正確的答案,因爲他早些時候回答。也就是說,我的問題是我的代碼從連接字符串中解析了數據庫名稱:'this.database = this.mongoClientUrl.split(「/」); //獲取最後一個位置的值並執行'morphia.createDatastore(mongoClient,this.database)' – matheusr

1

你可以嘗試這樣的事情。

MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017/databaseName?maxPoolSize=200"); 
MongoClient mongoClient = new MongoClient(uri); 
Morphia morphia = new Morphia(); 
Datastore datastore = morphia.createDatastore(mongoClient, "dbname"); 

或者

MongoClientOptions.Builder options = new MongoClientOptions.Builder(); 
//set your connection option here. 
options.connectionsPerHost(200); //max pool size 
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017), options.build()); 
Morphia morphia = new Morphia(); 
Datastore datastore = morphia.createDatastore(mongoClient, "dbname");