MongoDB list available databases in java

后端 未结 2 1592
孤城傲影
孤城傲影 2021-01-17 22:40

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

相关标签:
2条回答
  • 2021-01-17 23:00

    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());
    }
    
    0 讨论(0)
  • 2021-01-17 23:06

    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;
    }
    
    0 讨论(0)
提交回复
热议问题