Mongodb 如何使用MongoJava驱动程序执行某种管理命令?
在MongoDB的Java驱动程序中,是否支持直接读取MongoShell命令?我正在用Java为Mongo dba创建一个Mongo客户端,希望允许用户键入任何类型的Mongo shell命令,但我不确定是否可以通过Mongo Java驱动程序执行所有dba任务。 例如,当用户在mongo shell中键入Mongodb 如何使用MongoJava驱动程序执行某种管理命令?,mongodb,Mongodb,在MongoDB的Java驱动程序中,是否支持直接读取MongoShell命令?我正在用Java为Mongo dba创建一个Mongo客户端,希望允许用户键入任何类型的Mongo shell命令,但我不确定是否可以通过Mongo Java驱动程序执行所有dba任务。 例如,当用户在mongo shell中键入show dbs或show collections时,将显示数据库或集合的列表。dba还可以键入rs.status()、rs.config()命令来执行一些管理任务。我想知道MongoJav
show dbs
或show collections
时,将显示数据库或集合的列表。dba还可以键入rs.status()、rs.config()
命令来执行一些管理任务。我想知道MongoJava驱动程序是否支持这种输入。我知道我可以使用Java驱动程序中的一些API,比如database.runCommand(新文档(…)但是它需要一些shell命令和Java方法之间的转换任务。是否有更好的方法
protected CommandResult runReplicaSetStatusCommand(final Mongo pMongo) {
// Check to see if this is a replica set... if not, get out of here.
final CommandResult result = pMongo.getDB("admin").command(
new BasicDBObject("replSetGetStatus", 1));
final String errorMsg = result.getErrorMessage();
if (errorMsg != null && errorMsg.indexOf("--replSet") != -1) {
System.err
.println("This is not a replica set - not testing secondary reads");
return null;
获取完整示例:发送shell命令背后的想法是什么?为什么不能执行等效的JavaAPI方法?这是否意味着我可以通过java驱动程序使用所有的管理命令?从我看到的情况来看。大多数都是肯定的。你只需要玩一会儿。您特别感兴趣的是什么?我感兴趣的是阅读普通的mongoshell命令,如“showdbs”、“rs.status()”和“rs.config()”,然后将它们直接放入Java驱动程序类中。我不确定这是否可能。