2013-03-14 8 views
5

私はjavaで利用可能なすべてのMongoデータベースを経由するアルゴリズムを書いています。 Windows上でMongoDBはJavaで利用可能なデータベースを一覧表示します

は、Javaで利用可能なすべてのデータベースのリストを取り戻すことを私はちょうど私がどのように

show dbs 

を行うことができますシェル?

+0

標準のドライバを使用していますか? –

+0

はい私は標準のものを使用しています。 –

答えて

13

あなたはそうのようにこれを行うだろう。単にあなたに利用可能なデータベース名すべてのリストが表示されます

MongoClient mongoClient = new MongoClient(); 
List<String> dbs = mongoClient.getDatabaseNames(); 

を。

hereのドキュメントを参照してください。

更新:

@CydrickTはgetDatabaseNamesは既に廃止されて、以下に述べるので、私たちはに切り替える必要があるとして:メソッドgetDatabaseNames();は/利用できない推奨されませんので、ここに来て、誰のために

MongoClient mongoClient = new MongoClient(); 
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator(); 
while(dbsCursor.hasNext()) { 
    System.out.println(dbsCursor.next()); 
} 
+2

どのように私はそれを逃しました!いや、そのトリックをやった!あなたがロードありがとう! –

7

この情報を入手する新しい方法は次のとおりです。

MongoClient mongoClient = new MongoClient(); 
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator(); 
while(dbsCursor.hasNext()) { 
    System.out.println(dbsCursor.next()); 
} 

前のgetDatabaseNames()メソッドのようなデータベース名のリストを返すメソッドは次のとおりです。

public List<String> getDatabaseNames(){ 
    MongoClient mongoClient = new MongoClient(); //Maybe replace it with an already existing client 
    List<String> dbs = new ArrayList<String>(); 
    MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator(); 
    while(dbsCursor.hasNext()) { 
     dbs.add(dbsCursor.next()); 
    } 
    return dbs; 
} 
+0

これは本当にありがたいことですが、答えがどうもありがとうございます。正解でなければならないので、混乱はありません。 – Vlad

関連する問題