我已经准备了一些脚本来执行蒙戈。 它的工作原理是通过命令行预计:
mongo 127.0.0.1:27017/dbName script.js
但是,当我试图把它移动在Java(斯卡拉)代码,它不工作
db.eval(scriptContent)
是否有人与DB.eval()方法成功吗?
我已经准备了一些脚本来执行蒙戈。 它的工作原理是通过命令行预计:
mongo 127.0.0.1:27017/dbName script.js
但是,当我试图把它移动在Java(斯卡拉)代码,它不工作
db.eval(scriptContent)
是否有人与DB.eval()方法成功吗?
问题1:为什么它需要在Java的? 你能不能安排mongo ...
上面的命令通过cron来运行?
问题2:是否有可能通过Java驱动程序,而不是执行?
该Java驱动程序可以执行的Map / Reduce命令。 你必须JavaScript的文本复制到您的Java代码的地方,但如果你从驱动程序工作它都可以在那里进行。
事实上的司机背后的理念之一就是,他们只是发出DB像shell命令。 所以,你应该能够从壳或从Java做的一切。
eval()
VS运行这样的脚本
mongo 127.0.0.1:27017/dbName script.js
是不等价的。 eval()
发送要在的mongod实例执行的脚本,而该命令使用驱动程序来访问分贝。
正如其他人所指出的, eval()
应该避免,因为它有很多弊端,例如,将不会在分片环境中工作,或不允许在后台创建索引。
哦! 而回答这个问题,是的,我也有成功eval()
在Java中。 然而,有些事情根本不起作用;)