2013-03-14 13 views
5

Piszę algorytm, który przejdzie przez wszystkie dostępne bazy danych Mongo w java.MongoDB lista dostępnych baz danych w java

Na powłoce systemu Windows po prostu zrobić

show dbs 

Jak mogę to zrobić w java i wrócić listę wszystkich dostępnych baz danych?

+0

używasz standardowego sterownika? –

+0

Tak, używam standardowego. –

Odpowiedz

13

Można by to zrobić tak:

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

To będzie po prostu dać Ci listę wszystkich nazw baz danych dostępnych.

Możesz zobaczyć dokumentację here.

Aktualizacja:

Jak @CydrickT wymienionych poniżej, jest już przestarzała getDatabaseNames, więc musimy przełączyć się:

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

Jak to przegapiłem! Tak, to załatwiło sprawę! dziękuję ładuje! –

7

Dla każdego, kto przychodzi tu, ponieważ metoda getDatabaseNames(); jest przestarzała/niedostępny tutaj jest nowy sposób, aby uzyskać te informacje:

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

Oto metoda, która zwraca listę nazw baz danych jak poprzedni getDatabaseNames() metody:

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

To prawda, dziękuję bardzo za odpowiedź, to powinna być poprawna odpowiedź, więc nie będzie żadnych nieporozumień.Cheers, powodzenia. – Vlad

Powiązane problemy