受到这个blog的启发:http://wangzijian777.iteye.com/blog/1141763
?
和原文遇到的问题不同,我这里是远程数据同步到MongoDB中。
遇到删表后产生大量碎片文件,挤占系统空间。
?
class="java" name="code">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[] 的参数。
?
?
?