Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java执行mongo管理命令_Java_Mongodb_Mongo Java - Fatal编程技术网

如何从java执行mongo管理命令

如何从java执行mongo管理命令,java,mongodb,mongo-java,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} }")

我想用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);

您是否确保已成功向db进行身份验证


您是否尝试过db.eval(命令您希望执行的命令)

我只想补充一点,朱利亚斯的答案是正确的,但现在它被弃用了。 您可以使用新的API(
Document
类来自package
org.bson
):


db.eval()有两个参数。我不知道什么东西。。。args应该比你想仔细看看@Julias。第二个参数是可变长度的参数列表;这意味着可以是零个或多个参数。请记住,这在分片环境中不起作用。这个答案对我很有用。我只想指出我需要连接到一个
mongos
,一个简单的
mongod
是不够的。这可能很明显,但我没有在这里明确看到。
mongo.getDb(“admin”).runCommand
会更直观。如何判断返回文档是否成功?CommandResult上有一个OK方法。文件没有
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)));