MongoDB list available databases in java
Asked Answered
S

2

10

I am writing an algorithm that will go thru all available Mongo databases in java.

On the windows shell I just do

show dbs

How can I do that in java and get back a list of all the available databases?

Succor answered 14/3, 2013 at 17:47 Comment(2)
Are you using the standard driver ?Bedwarmer
Yes i am using the standard one.Succor
G
20

You would do this like so:

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

That will simply give you a list of all of the database names available.

You can see the documentation here.

Update:

As @CydrickT mentioned below, getDatabaseNames is already deprecated, so we need switch to:

MongoClient mongoClient = new MongoClient();
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator();
while(dbsCursor.hasNext()) {
    System.out.println(dbsCursor.next());
}
Guardroom answered 14/3, 2013 at 17:50 Comment(1)
How did i miss that ! Yea that did the trick ! thank you loads !Succor
P
10

For anyone who comes here because the method getDatabaseNames(); is deprecated / not available, here is the new way to get this information:

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

Here is a method that returns the list of database names like the previous getDatabaseNames() method:

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;
}
Paquin answered 14/12, 2015 at 15:11 Comment(1)
This is true,thanks so much for the answer ,this should be the correct answer so there will be no confusion.Cheers,best of luck.Upchurch

© 2022 - 2024 — McMap. All rights reserved.