Javascript 如何将.js文件中的JAVScript代码作为存储过程存储在MongoDB中

Javascript 如何将.js文件中的JAVScript代码作为存储过程存储在MongoDB中,javascript,mongodb,stored-procedures,Javascript,Mongodb,Stored Procedures,有几个例子说明了如何在MongoDB()中创建“存储过程”,但它们只说明了如何直接添加代码,例如在mongoshell中。对于任何非平凡的存储过程,都希望将代码存储在.js文件中,并将该文件“导入”到MongoDB中。这样它就可以很容易地进行编辑、版本控制等 有办法做到这一点吗?您可以使用以下语法: $ mongo mydb import.js 以及在脚本中编写导入指令,即: var myfunc = function(x, y){ return x + y; }} db.system.js

有几个例子说明了如何在MongoDB()中创建“存储过程”,但它们只说明了如何直接添加代码,例如在mongoshell中。对于任何非平凡的存储过程,都希望将代码存储在.js文件中,并将该文件“导入”到MongoDB中。这样它就可以很容易地进行编辑、版本控制等


有办法做到这一点吗?

您可以使用以下语法:

$ mongo mydb import.js
以及在脚本中编写导入指令,即:

var myfunc = function(x, y){ return x + y; }}

db.system.js.save({_id:"myfunc", value: myfunc);

你想完成什么?(10gen明确不推荐使用链接博客文章中的技术:)目前MongoDB不推荐在DB中运行JS。它不是用“存储过程”模型设计的。我想从我的Web服务器调用一个mongodb函数,它在返回最终结果之前执行多个查询,而不必因为临时数据而进出数据库。奇怪的是,10gen不鼓励这种做法,然后提供了很好的文档和api支持。这并不“好”,你必须使用eval,它不是执行JS函数的本机api,这很像黑客攻击它来做一些不应该使用全局锁和不能跨碎片使用的函数的事情。存储过程很少需要,而且在支持它们的数据库中经常被滥用。我会确保你能从使用它们中获得任何性能。至于让他们工作,我不确定你如何才能有效地工作。