如何从java执行mongo admin命令

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

命令是:

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

我怎么能用java驱动程序呢?

以下代码不起作用:

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

我刚发现它

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

我只是想补充一点,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))); 

您是否确保已成功通过数据库validation?

你试过db.eval(COMMAND_THAT_YOU_WANT_TO_EVAL);