MongoDb将正则表达式传递给映射函数作用域:MongoError:JS_NewX失败

时间:2017-11-06 09:12:31

标签: mongodb mapreduce mongodb-query

正则表达式:

var OMIT_VERSION_NUMBER_REGEX = new RegExp("(\\d(,|\\.)?)+$", 'g');

地图缩小调用:

  let result = await collection.mapReduce(map, reduce,
    {
        out: { inline: 1 },
        scope:{
            omitVersionNumberRegex: OMIT_VERSION_NUMBER_REGEX,
        },
        query: query,
    }
);

导致:

  

MongoError:JS_NewX

失败

还试过这个:

scope:{
     regex: {omitVersionNumberRegex: OMIT_VERSION_NUMBER_REGEX},
},

在map函数中使用正则表达式时会抛出此错误:

  

MongoError:错误:SyntaxError:无效的正则表达式标志s @:6:1

地图功能:

let map = function () {
    this.SOMESTRING.replace(omitVersionNumberRegex, '');
    // emit result...
}

传递函数和变量引用有效。如何将正则表达式传递给map函数的范围,以便只需要创建一次正则表达式?

0 个答案:

没有答案