Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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项目中mongoDB map/reduce函数的编写和存储位置_Java_Javascript_Mongodb - Fatal编程技术网

java项目中mongoDB map/reduce函数的编写和存储位置

java项目中mongoDB map/reduce函数的编写和存储位置,java,javascript,mongodb,Java,Javascript,Mongodb,对于在Java项目中编写和存储JavaScriptMap/reduce函数以用于MongoDB数据库的位置和方式,是否有人有任何建议或知道任何最佳实践 我要寻找的标准是: 在编写和编辑函数时,我希望IDE(我使用Eclipse)提供语法高亮显示和错误检查的好处 如果可能的话,我不想在编辑完函数后将其复制到其他位置 我宁愿将函数存储在源代码中,而不是数据库本身,以便于参考和版本控制等 任何你如何解决这个问题的例子都会很好 编辑:我不确定我是否正确地解释了我自己,所以还有一个办法: 我不是在问基本的

对于在Java项目中编写和存储JavaScriptMap/reduce函数以用于MongoDB数据库的位置和方式,是否有人有任何建议或知道任何最佳实践

我要寻找的标准是:

在编写和编辑函数时,我希望IDE(我使用Eclipse)提供语法高亮显示和错误检查的好处

如果可能的话,我不想在编辑完函数后将其复制到其他位置

我宁愿将函数存储在源代码中,而不是数据库本身,以便于参考和版本控制等

任何你如何解决这个问题的例子都会很好

编辑:我不确定我是否正确地解释了我自己,所以还有一个办法:

我不是在问基本的资源管理。如果可能的话,我所追求的是一个工作环境,允许我在“就地”编辑功能的同时享受IDE的好处。如果我遗漏了一些显而易见的东西,你得原谅我

我要避免的是您可能会在SQL中看到的情况,例如,当它作为字符串存储在类文件中时:

private static final String MAP_FUNC = 
    "function() { " +
    "   emit(this.id, {total : this.total}); " +
    "};";
或者在java属性文件中:

map.func=function() {
\       emit(this.id, {total : this.total});
\   };
您必须输入大量无关字符,如“s”和\s。您必须将其写入其他地方,然后复制并粘贴到其中并添加这些字符(或者您可能有一个工具为您执行此操作-您仍然必须执行此操作)

由于javascript在.js文件中编写时经过Eclipse验证,因此我不想做任何事情。我希望将函数存储在.js文件中,以便在需要时通过map/reduce调用轻松使用


有人这样做吗?我最初的想法是为每个函数创建一个.js文件,但是一个只有匿名函数的.js文件在eclipse中无法通过验证,这使得它毫无意义-您必须将其分配给一个var-这意味着它的格式不适合map/reduce使用。我想我可以这样做创建只包含函数内容的文件?但所有这些听起来有点混乱,我希望其他人可能会遇到这个问题,并有一个简洁的解决方案。

我们将JS文件作为(Eclipse)项目中的应用程序资源,然后在应用程序初始化时,这些文件由Java应用程序读取(在我们的例子中是web应用程序或守护进程),存储在单例管理类中,然后在调用map/reduce时根据需要使用


这是一个相对简单的资源管理。

我在大多数开源项目(包括Spring等)中使用的约定是将所有非java文件放在一个资源目录下,一个描述性目录下:

module-root/
    src/
        main/
            java/
                (Java sources go here)
            resources/
                log4j.xml
                spring/ (spring xmls go here)
                sql/ (sql scripts go here)
                mongo/ (<-- seems like a good place for mongoDB functions)
        test/
            unit/
                java/ (unit test java sources go here)
                resources/ (unit test specific resources - usually none)
            integration/
                java/ (integration test java sources go here)
                resources/
                    spring/ (usually an ITestAssembly.xml goes here)
模块根目录/
src/
主要/
爪哇/
(这里有Java源代码)
资源/
log4j.xml
spring/(springxmls到此为止)
sql/(此处是sql脚本)

蒙戈/(可能我在这里遗漏了一些明显的东西,或者我的问题表达得不够好。我想要的是一种简单的方法来创建和编辑map/reduce函数,获得IDE的所有好处,并能够将它们“就地”保存以供应用程序用作资源。简单的资源管理我明白——我知道'm after正在简化创建和编辑这些资源的过程。例如,每个函数都可以保存在单独的.js文件中。但是(在Eclipse中)javascript验证不允许包含以下内容的文件:
function(){…}