`
dacoolbaby
  • 浏览: 1256046 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MongoDB JDBC调Command

    博客分类:
  • Java
阅读更多

受到这个blog的启发:http://wangzijian777.iteye.com/blog/1141763

 

和原文遇到的问题不同,我这里是远程数据同步到MongoDB中。

遇到删表后产生大量碎片文件,挤占系统空间。

 

Mongo m = new Mongo();
db = m.getDb("admin");
db.eval("db.shutdownServer");
// 或者是如下的代码:
db.command("shutdown");

 

 上面的命令中,eval已经不能使用了。最新的JDBC 驱动2.11.X 用法如下:

db.eval("db.repairDatabase()", null);

 

如果使用db.command方法,找不到对应的command code 。

 

官方文档如下:

public Object eval(String code,
          Object... args)
calls doEval(java.lang.String, java.lang.Object[]). If the command is successful, the "retval" field is extracted and returned. Otherwise an exception is thrown.

Parameters:
code - the function in javascript code
args - arguments to be passed to the function

Returns:
The object

Throws:
MongoException

 

意思是将JavaScript命令用字符串的形式传入,再传入Object[] 的参数。

 

 

 

分享到:
评论
1 楼 GCF123123 2016-04-12  
你好 在mongo 3.0 中 不使用 getDB 方法 此时db.eval会报错,如何解决
MongoClient mongo = new MongoClient();
MongoDatabase db = mongo.getDatabase(database);
如何调用 db.eval() 方法 该方法在DB类下

相关推荐

Global site tag (gtag.js) - Google Analytics