java - 通过Java加载任意javascript到Mongodb中,稍后调用

标签 java javascript mongodb

直接嵌入函数很简单,

MapReduceOutput out = coll.mapReduce("function() { ... }", 
"function( year, values ) { ... }", 
null, MapReduceCommand.OutputType.INLINE, null);

但是如果我有这样一个 .js 文件

func = function(i) { ... }

m = function() { ...
func (7);
... }

r = function( year, values ) { ...
func (3);
... }

有没有办法做类似的事情

coll.LoadSomethingSomeHow(script);

MapReduceOutput out = coll.mapReduce("m", "r", 
null, MapReduceCommand.OutputType.INLINE, null);

其中script是从js文件加载的字符串?这将使事情变得更加灵活,并允许更清晰的 map 减少。

最佳答案

我经历了一次 similar issue - 但是在您的情况下,您可能会考虑在对象/ namespace 内对函数进行分组:

db.system.js.save({_id: 'mr', value: {func: function(i){…}, m: function(){…}, r: function(){…}}});

然后您可以将这些函数称为 mr.funcmr.mmr.r。然而,这只是一种组织上的便利——@Umut 正确地指向 db.system.js。如果你的库依赖于 prototype,你可以编写一个初始化例程来引导它——但是这可能会很昂贵,因为闭包上下文可能会在 map/reduce 的迭代中丢失,需要重复初始化。

关于java - 通过Java加载任意javascript到Mongodb中,稍后调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8085060/

相关文章:

javascript - 如何使用Material-UI Grid进行SPA(负边距问题)

javascript - 正确显示前 3 行后,Div 神秘地向下移动

mongodb - 通过 Model.save() 更新时触发 Mongoose 预保存 Hook

javascript - 如何将下拉值传递给模板助手。 [ meteor +火焰]

javascript - 无法启动我的 nodejs 应用程序

java - Spring中的刷新属性占位符机制

整数上的 Java 按位 "&"

java - 结构在 Java 中是如何工作的?

java - 构造函数调用存储在哪里?堆栈还是堆?

javascript - ReactJS - 内联箭头函数性能