Mongodb 如何使用MongoJava驱动程序执行某种管理命令?

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

在MongoDB的Java驱动程序中,是否支持直接读取MongoShell命令?我正在用Java为Mongo dba创建一个Mongo客户端,希望允许用户键入任何类型的Mongo shell命令,但我不确定是否可以通过Mongo Java驱动程序执行所有dba任务。 例如,当用户在mongo shell中键入
show dbs
show collections
时,将显示数据库或集合的列表。dba还可以键入
rs.status()、rs.config()
命令来执行一些管理任务。我想知道MongoJava驱动程序是否支持这种输入。我知道我可以使用Java驱动程序中的一些API,比如
database.runCommand(新文档(…)
 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驱动程序类中。我不确定这是否可能。