我正在编写一个算法,它将通过 java 中所有可用的 Mongo 数据库。
在windows shell上我只是做
show dbs
我如何在 java 中做到这一点并取回所有可用数据库的列表?
我正在编写一个算法,它将通过 java 中所有可用的 Mongo 数据库。
在windows shell上我只是做
show dbs
我如何在 java 中做到这一点并取回所有可用数据库的列表?
你会这样做:
MongoClient mongoClient = new MongoClient();
List<String> dbs = mongoClient.getDatabaseNames();
这只会为您提供所有可用数据库名称的列表。
您可以在此处查看文档。
更新:
正如下面提到的@CydrickT,getDatabaseNames
已经被弃用,所以我们需要切换到:
MongoClient mongoClient = new MongoClient();
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator();
while(dbsCursor.hasNext()) {
System.out.println(dbsCursor.next());
}
对于由于该方法getDatabaseNames();
已弃用/不可用而来到这里的任何人,这里是获取此信息的新方法:
MongoClient mongoClient = new MongoClient();
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator();
while(dbsCursor.hasNext()) {
System.out.println(dbsCursor.next());
}
这是一个返回数据库名称列表的方法,如前一个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;
}