连接字符串中的MongoDB选项被解释为数据库名称



我试图通过MongoDB中的连接字符串设置maxPoolSize遵循这篇文档。这是我的连接字符串:

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

然而,而不是让数据库databaseNamemaxPoolSize等于200,我得到一个名为databaseName?maxPoolSize=200的数据库。也就是说,Mongo将所有内容(name + options)作为数据库名称。

一些信息:

  • 蒙古包版本:3.2.10
  • 使用Morphia 1.1.0连接

我很乐意提供更多的信息。

如果你正在做

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

那么就不要那样做了,而是按如下方式做:

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

,因为你需要告诉mongo你正在沿着连接字符串传递一些选项。

如果你认为我误解了你的问题。
请张贴您试图获得连接的代码片段。

你可以试试这样做。

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");

相关内容

最新更新