DB.eval()与Mongo Java驱动程序

时间:2012-08-02 16:26:24

标签: java mongodb mongodb-java

我准备了一些在Mongo上执行的脚本。 它从命令行开始按预期工作:

mongo 127.0.0.1:27017/dbName script.js

但是当我尝试在java(scala)代码中移动它时,它无法与

一起使用
db.eval(scriptContent)

是否有人使用DB.eval()方法成功?

2 个答案:

答案 0 :(得分:0)

问题#1 :为什么需要使用Java?你能安排上面的mongo ...命令通过cron运行吗?

问题#2 :是否可以通过Java驱动程序实现?

Java驱动程序可以执行Map / Reduce命令。你必须在某个地方将javascript文本复制到你的Java代码中,但是如果你在驱动程序中工作,那么就可以在那里完成。

实际上,驱动程序背后的一个想法是它们只是发布像shell这样的DB命令。所以你应该能够从shell或Java中做所有事情。

答案 1 :(得分:0)

eval() VS像这样运行脚本

mongo 127.0.0.1:27017/dbName script.js

不等同。 eval()发送要在mongod实例上执行的脚本,而该命令使用驱动程序访问数据库。

正如其他人所指出的那样,eval()应该避免,因为它有许多缺点,例如,不能在分片环境中工作,或者不允许在后台创建索引。 / p>

哦!并回答这个问题,是的,我在java中成功使用了eval()。但是,有些事情根本行不通;)

相关问题