如何使用Mongo Java Driver执行某种管理命令?

时间:2016-11-28 23:57:41

标签: mongodb

在MongoDB的Java Driver中,它是否支持直接读取mongo shell命令?我正在为Java中的Mongo dba创建一个Mongo客户端,并希望允许用户键入任何类型的Mongo shell命令,但我不确定是否可以通过Mongo Java Driver执行所有dba任务。 例如,当用户在mongo shell中键入show dbsshow collections时,将显示数据库或集合列表。此外,dba可以键入rs.status(), rs.config()命令来执行某些管理任务。我想知道mongo java驱动程序是否支持这种输入。我知道我可以使用像database.runCommand(new Document(...));这样的Java驱动程序中的一些API,但它需要在shell命令和Java方法之间进行一些翻译任务。是否有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

 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;

http://massapi.com/source/bitbucket/12/14/1214103355/src/test/java/com/mongodb/util/TestCase.java.html#307

获取完整示例