Mongo 用户定义函数和 Map Reduce
Posted
技术标签:
【中文标题】Mongo 用户定义函数和 Map Reduce【英文标题】:Mongo User Defined Functions and Map Reduce 【发布时间】:2011-06-27 10:53:27 【问题描述】:在 mongo 中有没有办法创建用户定义的 javascript 函数。我在客户端有几个 Map/Reduce 函数,我想在其他 MR 函数中使用它们。
例如,几个 MR 函数计算各种平均值。我希望能够像这样使用它们:
function reduce(k,v)
if (val > myDatabaseAverage())
// ..do something
【问题讨论】:
【参考方案1】:使用
db.system.js.save( _id : "myDatabaseAverage" , value : function()
// ..do something
);
这会将 JS 函数存储在服务器上,并且从那时起 m/r 可以访问。
更多示例请参见:mongo/jstests/core/mr_stored.js
【讨论】:
不应该是“myDatabaseAverage”吗? mongo 测试现在使用db.system.js.insert()
。【参考方案2】:
正如@Remon van Vliet 所说,
你必须使用,
db.system.js.save( _id : "myDatabaseAverage" ,
value : function() // ..do something
);
先保存你的函数,
然后你需要打电话,
db.loadServerScripts();
在你执行你的函数之前。
【讨论】:
以上是关于Mongo 用户定义函数和 Map Reduce的主要内容,如果未能解决你的问题,请参考以下文章