Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Java将任意javascript加载到Mongo,稍后调用_Java_Javascript_Mongodb - Fatal编程技术网

通过Java将任意javascript加载到Mongo,稍后调用

通过Java将任意javascript加载到Mongo,稍后调用,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 = funct

直接嵌入函数很简单

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文件加载的字符串?这将使事情变得更加灵活,并允许更干净的映射减少。

我经历了一个A-但是,在你的情况下,你可以考虑在对象/命名空间内对函数进行分组:

db.system.js.save({_id: 'mr', value: {func: function(i){…}, m: function(){…}, r: function(){…}}});
然后,您可以将这些函数称为
mr.func
mr.m
mr.r
。然而,这只是一种组织上的便利,@Umut正确地指向了
db.system.js
。如果您的库依赖于
prototype
,您可以编写一个初始化例程来引导它-但是这可能代价高昂,因为在map/reduce的迭代过程中,闭包上下文可能会丢失,需要重复初始化

>我经历了A-但是,在您的情况下,您可以考虑对对象/命名空间中的函数进行分组:

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

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

我不这么认为。如果没有外部函数,我认为您可以将函数存储在单独的文件中;有了它,您可能需要将共享的JS合并到每个文件的JS中。这样做可能是不可能的,但如果是的话,那将非常有用。不,这是不可能的。在jira.mongodb.org上提交请求我认为不可能将一些脚本加载到mongodb中,但您可以将您的函数存储在服务器端,然后在以后重用它们。但您只需要执行一次,也可以通过Java执行,因为您所做的只是将函数添加到名为
js
的特殊系统集合中。看,我不这么认为。如果没有外部函数,我认为您可以将函数存储在单独的文件中;有了它,您可能需要将共享的JS合并到每个文件的JS中。这样做可能是不可能的,但如果是的话,那将非常有用。不,这是不可能的。在jira.mongodb.org上提交请求我认为不可能将一些脚本加载到mongodb中,但您可以将您的函数存储在服务器端,然后在以后重用它们。但您只需要执行一次,也可以通过Java执行,因为您所做的只是将函数添加到名为
js
的特殊系统集合中。看见