MongoDB列出了java中的可用数据库

Max*_*mit 6 java mongodb mongo-java

我正在编写一个算法,它将通过java中所有可用的Mongo数据库.

在Windows shell上我就是这么做的

show dbs
Run Code Online (Sandbox Code Playgroud)

我怎样才能在java中执行此操作并获取所有可用数据库的列表?

jjn*_*guy 15

你会这样做:

MongoClient mongoClient = new MongoClient();
List<String> dbs = mongoClient.getDatabaseNames();
Run Code Online (Sandbox Code Playgroud)

这将简单地为您提供所有可用数据库名称的列表.

您可以在此处查看文档.

更新:

正如下面提到的@CydrickT,getDatabaseNames已经弃用,所以我们需要切换到:

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

  • 我怎么想念那个!是的,这样做了!谢谢你加载! (2认同)

Gam*_*ega 7

对于因为该方法getDatabaseNames();已弃用/不可用而来到这里的任何人,以下是获取此信息的新方法:

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

这是一个返回数据库名称列表的方法,如上一个getDatabaseNames()方法:

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;
}
Run Code Online (Sandbox Code Playgroud)