2013-03-14 5 views
5

Ich schreibe einen Algorithmus, der durch alle verfügbaren Mongo-Datenbanken in Java gehen wird.MongoDB Liste verfügbaren Datenbanken in Java

Auf der Windows-Shell I Wie gerade

show dbs 

tun kann ich das in Java zu tun und eine Liste aller verfügbaren Datenbanken zurück?

+0

Sind Sie die Standard-Treiber? –

+0

Ja, ich benutze den Standard. –

Antwort

13

Sie würden dies tun, wie so:

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

Das wird Sie geben einfach eine Liste mit allen Datenbanknamen zur Verfügung.

Sie können die Dokumentation here sehen.

Update:

Wie @CydrickT unten erwähnt, ist getDatabaseNames bereits veraltet, so dass wir wechseln müssen:

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

Wie habe ich das vermisst! Ja, das hat den Trick gemacht! Danke Ladungen! –

7

Für jeden, der hierher kommt, weil die Methode getDatabaseNames(); veraltet/nicht verfügbar Hier ist der neue Weg, um diese Information zu bekommen:

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

Hier ist eine Methode, um die Liste der Datenbanknamen wie die vorherige getDatabaseNames() Methode gibt:

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

Das ist wahr, vielen Dank für die Antwort, dies sollte die richtige Antwort sein, so wird es keine Verwirrung geben. Cheers, viel Glück. – Vlad