MongoDB 文档声明不建议使用其存储函数功能。这个问题有一些原因,但它们似乎都归结为“eval
是邪恶的”。
在 MapReduce 查询中不应该使用服务器端函数是否有具体原因?
system.js 函数默认可用于 Map Reduce 作业(https://jira.mongodb.org/browse/SERVER-8632注意到 2.4.0rc 中的小故障)。
它们实际上并没有eval
在原生 V8/Spidermonkey 环境中进行编辑,所以技术上它们的一部分也消失了。
所以不,没有真正的问题,它们将在 Map Reduce 中像本地一样运行,并且应该像您编写的任何其他 javascript 一样快速和“好”地运行。事实上,该system.js
集合更多地设计用于容纳 map reduce 作业的代码,后来的使用将其视为“存储过程”的黑客。