2016-11-17 27 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");