Estoy usando MongoDB 4.4.8, según la referencia de mongo , $function es nueva en 4.4, pero al ejecutar el siguiente código, el servidor respondió:
En mi archivo de configuración, security.javascriptEnabled no está configurado, por lo que creo que debería ser true por defecto
El comando falló con el error 139 (JSInterpreterFailure): 'SyntaxError: token inesperado: palabra clave 'función' en el servidor {}. La respuesta completa es {"ok": 0.0, "errmsg": "SyntaxError: token inesperado: palabra clave 'función'", "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' } } }} ]); La función se puede ejecutar con éxito en mi computadora, pero mongo parecía no poder analizar la function de palabra clave, ¿qué sucedió?