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?
If you want to check your databases list, use the command show dbs. Your created database (mydb) is not present in list. To display database, you need to insert at least one document into it. In MongoDB default database is test.
Listing all the databases in mongoDB console is using the command show dbs .
Default database of MongoDB is 'db', which is stored within data folder.
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());
}
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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With