2016-11-17 11 views
0

に続いてMongoDBの接続文字列でmaxPoolSizeを設定しようとしています。ここに私の接続文字列は次のとおりです。?接続文字列のMongoDBオプションがデータベース名として解釈されています

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

しかし、代わりにmaxPoolSizeとdatabaseNameのデータベースを有していると私は= 200databaseNameのmaxPoolSizeというデータベースを取得しています、200に等しいです。これは、Mongoがデータベース名としてすべて(名前+オプション)を取得していることです。

いくつかの情報:

  • モンゴバージョン:3.2.10
  • Morphia 1.1.0

使用した接続、私は任意のさらなる情報を提供させていただきます。

答えて

1

あなたは

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

を行っている場合、あなたは、接続文字列に沿っていくつかのオプションを渡しているのmongoを指示する必要がありますので、その後、それを行ういけない、代わりに、次のようにしてください、

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"); 
関連する問題