Как выполнить команду администратора Монго из Java

Я хочу выполнить команду администрирования soem с параметрами из Java.

Команды:

<code>{ enablesharding : "test" }
{ shardcollection : "test.test_collection", key : {"number":1} }
</code>

Как я могу это сделать из драйвера java?

Следующий код не работает:

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

Ответы на вопрос(3)

Решение Вопроса

Я только что нашел это

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);
 jmmut16 дек. 2015 г., 17:47
Этот ответ был полезен для меня. Я просто укажу, что мне нужно подключиться кmongos, простойmongod недостаточно. Это может быть очевидно, но я не видел это здесь явно.
 Alexander Suraphel01 сент. 2016 г., 08:43
mongo.getDb("admin").runCommand было бы более интуитивно понятно.

Вы пробовали db.eval (COMMAND_THAT_YOU_WANT_TO_EVAL);

 Julias01 мая 2012 г., 09:54
db.eval () имеет два аргумента. Я не знаю что такое Objects ... должны быть аргументы
 user136735101 мая 2012 г., 10:33
Возможно, ты захочешь поближе познакомиться @Julias. Второй аргумент - это список аргументов переменной длины; это означает, что может быть ноль или более аргументов.
 Lucas A.30 июл. 2014 г., 22:59
Имейте в виду, это не работает в закрытых условиях

что ответ Юлии правильный, но теперь он устарел. Вы можете использовать новый 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)));

Ваш ответ на вопрос