【问题标题】:Mongo User Defined Functions and Map ReduceMongo 用户定义函数和 Map Reduce
【发布时间】:2011-06-27 10:53:27
【问题描述】:

在 mongo 中有没有办法创建用户定义的 Javascript 函数。我在客户端有几个 Map/Reduce 函数,我想在其他 MR 函数中使用它们。

例如,几个 MR 函数计算各种平均值。我希望能够像这样使用它们:

function reduce(k,v)
{
    if (val > myDatabaseAverage())
    // ..do something
}

【问题讨论】:

    标签: mongodb mapreduce user-defined-functions


    【解决方案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();
    

    在你执行你的函数之前。

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      相关资源
      最近更新 更多