java项目中mongoDB map/reduce函数的编写和存储位置
对于在Java项目中编写和存储JavaScriptMap/reduce函数以用于MongoDB数据库的位置和方式,是否有人有任何建议或知道任何最佳实践 我要寻找的标准是: 在编写和编辑函数时,我希望IDE(我使用Eclipse)提供语法高亮显示和错误检查的好处 如果可能的话,我不想在编辑完函数后将其复制到其他位置 我宁愿将函数存储在源代码中,而不是数据库本身,以便于参考和版本控制等 任何你如何解决这个问题的例子都会很好 编辑:我不确定我是否正确地解释了我自己,所以还有一个办法: 我不是在问基本的资源管理。如果可能的话,我所追求的是一个工作环境,允许我在“就地”编辑功能的同时享受IDE的好处。如果我遗漏了一些显而易见的东西,你得原谅我 我要避免的是您可能会在SQL中看到的情况,例如,当它作为字符串存储在类文件中时:java项目中mongoDB map/reduce函数的编写和存储位置,java,javascript,mongodb,Java,Javascript,Mongodb,对于在Java项目中编写和存储JavaScriptMap/reduce函数以用于MongoDB数据库的位置和方式,是否有人有任何建议或知道任何最佳实践 我要寻找的标准是: 在编写和编辑函数时,我希望IDE(我使用Eclipse)提供语法高亮显示和错误检查的好处 如果可能的话,我不想在编辑完函数后将其复制到其他位置 我宁愿将函数存储在源代码中,而不是数据库本身,以便于参考和版本控制等 任何你如何解决这个问题的例子都会很好 编辑:我不确定我是否正确地解释了我自己,所以还有一个办法: 我不是在问基本的
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(){…}