如何从java执行mongo admin命令

时间:2012-05-01 07:40:16

标签: java mongodb mongo-java

我想用java中的参数执行soem admin命令。

命令是:

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

如何从java驱动程序中执行此操作?

以下代码不起作用:

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

3 个答案:

答案 0 :(得分:15)

我刚发现它

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);

答案 1 :(得分:2)

我只想补充一点,Julias的答案是正确的,但现在它已被弃用了。 您可以使用新的API(Document类来自包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)));

答案 2 :(得分:-1)

您确定已成功通过数据库验证吗?

您是否尝试过db.eval(命令YOU_WANT_TO_EVAL);