how to execute mongo admin command from java

♀尐吖头ヾ 提交于 2019-11-27 18:16:05

问题


I want to execute soem admin command with parameters from java.

The commands are:

{ enablesharding : "test" }
{ shardcollection : "test.test_collection", key : {"number":1} }

How can I do it from java driver?

The following code doesn't works:

mongo.getDb("admin").command("{shardcollection : \"test.test_collection\", key:\"number\":1} }")

回答1:


I just found it

DB db = mongo.getDB("admin");
DBObject cmd = new BasicDBObject();
cmd.put("shardcollection", "testDB.x");
cmd.put("key", new BasicDBObject("userId", 1));
CommandResult result = db.command(cmd);



回答2:


I just want to add that Julias's answer is correct, but now it's deprecated. You could use new API (Document class is from package org.bson):

MongoDatabase database = client.getDatabase("admin");
Document documentA = database.runCommand(new Document("enablesharding", "test"));
Document documentB = database.runCommand(
        new Document("shardcollection", "testDB.x").append("key", new Document("userId", 1)));



回答3:


Have you ensured you have authenticated to the db successfully?

Have you tried db.eval(COMMAND_THAT_YOU_WANT_TO_EVAL);



来源:https://stackoverflow.com/questions/10394917/how-to-execute-mongo-admin-command-from-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!