1

我需要通过正则表达式过滤一些节点,但由于 Arango v2.8 没有此功能,我想尝试注册用户函数,谁能给我一个如何注册一个简单函数并在 AQL 中使用它的示例?

我正在努力:

var myfunc = function (ideation_node) {
  for (var i = 0; i < ideation_node.length; ++i) {

    if (true) {
      return ideation_node[i];
    }
  }
  return null;
}

RETURN myfunctions::myfunc()
4

1 回答 1

1

您用于triagens/ArangoDb/AqlUserFunction注册用户功能。

    $funcHandler = new \triagens\ArangoDb\AqlUserFunction($arangoConnection);
    $funcHandler->name = 'myfunctions::myFunc';
    $funcHandler->code = 'function(ideation_node){...}';
    $funcHandler->register();    

在 AQL-Statements 中,注册函数与任何其他函数一样使用,使用函数的完全限定(即带有命名空间前缀)名称。

确保该函数没有副作用并且不操纵输入参数,而是使用返回值将计算结果传递给外界。

于 2017-07-06T08:01:27.100 回答