【问题标题】:Mongo JSInterpreter SyntaxError: unexpected token: keyword 'function'Mongo JSInterpreter SyntaxError:意外标记:关键字\'function\'
【发布时间】:2022-12-03 10:06:42
【问题描述】:

我使用的是MongoDB 4.4.8,根据mongo reference$function是4.4新增的,但是运行如下代码,服务器响应:

在我的配置文件中,没有设置security.javascriptEnabled,所以我认为它应该默认为true

命令失败,出现错误 139 (JSInterpreterFailure):“SyntaxError:意外标记:服务器 {} 上的关键字‘function’”。完整的响应是 {"ok": 0.0, "errmsg": "SyntaxError: unexpected token: keyword 'function'", "code": 139, "codeName": "JSInterpreterFailure"}

    db.my_collection.aggregate(
    [
        {$addFields:{
            query: {
                $function:{
                    body: function(ss){
                        arr = ss.split('|');
                        result = {};
                        arr.forEach(element => {
                            kv = element.split(':');
                            result[kv[0]] = kv[1];
                        });
                        return result['q']},
                    args: ['my_field'],
                    lang:'js'
                }
            }
            }}
    ]);

在我的电脑上可以执行成功,但是mongo好像无法解析关键字function,这是怎么回事?

【问题讨论】:

    标签: javascript mongodb function aggregation-framework


    【解决方案1】:

    我遇到了同样的问题,但我直接在 mongo shell 中尝试并且它起作用了,可能是 DataGrip 的问题而不是 mongo 的问题令人惊讶

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 2018-08-02
      • 2020-10-03
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 2016-04-21
      • 2020-12-03
      相关资源
      最近更新 更多