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

2019-09-20 16:33发布

我已经准备了一些脚本来执行蒙戈。 它的工作原理是通过命令行预计:

mongo 127.0.0.1:27017/dbName script.js

但是,当我试图把它移动在Java(斯卡拉)代码,它不工作

db.eval(scriptContent)

是否有人与DB.eval()方法成功吗?

Answer 1:

问题1:为什么它需要在Java的? 你能不能安排mongo ...上面的命令通过cron来运行?

问题2:是否有可能通过Java驱动程序,而不是执行?

该Java驱动程序可以执行的Map / Reduce命令。 你必须JavaScript的文本复制到您的Java代码的地方,但如果你从驱动程序工作它都可以在那里进行。

事实上的司机背后的理念之一就是,他们只是发出DB像shell命令。 所以,你应该能够从壳或从Java做的一切。



Answer 2:

eval() VS运行这样的脚本

mongo 127.0.0.1:27017/dbName script.js

是不等价的。 eval()发送要在的mongod实例执行的脚本,而该命令使用驱动程序来访问分贝。

正如其他人所指出的, eval()应该避免,因为它有很多弊端,例如,将不会在分片环境中工作,或不允许在后台创建索引。

哦! 而回答这个问题,是的,我也有成功eval()在Java中。 然而,有些事情根本不起作用;)



文章来源: DB.eval() with Mongo Java Driver