当前位置: 首页 > 知识库问答 >
问题:

如何从java执行mongo管理命令

秋和雅
2023-03-14

我想使用java中的参数执行一些管理命令。

这些命令是:

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

我怎么能从java驱动程序做到这一点?

以下代码不起作用:

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

共有3个答案

沃学
2023-03-14

你确定你已经成功地通过了数据库的认证了吗?

你试过db.eval(COMMAND_THAT_YOU_WANT_TO_EVAL);

东方海
2023-03-14

我只想补充一点,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)));
孔俊捷
2023-03-14

我刚刚找到它

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);
 类似资料:
  • 问题内容: 我正在写以下命令 我怎样才能将此命令限制为仅管理员?我试着看,它说。我如何检查给定的用户是否是? 问题答案: 有两种方法:通过使用的角色白名单 或经许可使用 这两个装饰器都是Checks,如果它们失败,将引发您的一些子类供您选择处理。

  • 我试图从maven命令行运行一个类,但得到以下错误。不知道我错过了什么。有谁能引导一下吗? pom.xml

  • 问题内容: 有什么方法可以从Java程序执行“ javac和java命令”吗? 如果是这样,请帮助我。 问题答案: 喜欢吗?

  • 问题内容: 我有一个bash脚本文件,正在shell中使用source命令调用它,并且正在设置许多环境变量。然后,我可以使用环境变量正在设置的所有工具。 现在,我想使用以下方法在Java中执行相同的操作: 我知道源是内部命令,不能从Java调用它。 还有其他方法可以通过java在该文件中设置环境变量,以便以后可以在我的代码中使用它们来调用其他命令吗? 先感谢您! 问题答案: 尝试执行类似的操作,在

  • 问题内容: 我正在尝试从用户读取一个文件,其中每一行都是一个命令,然后运行它(可以假定命令是合法的),但是当我给出类似的命令时,出现运行时异常错误: 线程“主”中的异常java.io.IOException:无法运行程序“ echo”:CreateProcess错误= 2,系统找不到指定的文件 我正在尝试运行以下命令: 在哪里。但这确实适用于类似的命令,所以看来我得到的运行时就像“运行”窗口而不是

  • 问题内容: 我正在尝试从GNU / Linux平台上的Java应用程序执行shell命令。问题是,尽管它可以从bash成功运行,但调用另一个Java应用程序的脚本永远不会结束。我试图调试它: 我尝试使用:ProcessBuilder(); 和Runtime.getRuntime()。exec(cmd); 看起来它正在等待完成。有任何想法吗? 谢谢,Laurențiu 问题答案: 您是否正在处理标准