Arangov2.8 - Примеры регистрации пользовательских функций в AQL

Мне нужно отфильтровать некоторые узлы по регулярному выражению, но, поскольку в 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()

person CommonSenseCode    schedule 04.05.2017    source источник


Ответы (1)


Вы используете triagens/ArangoDb/AqlUserFunction для регистрации пользовательской функции.

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

В AQL-операторах зарегистрированные функции используются так же, как и любые другие функции, с использованием полного (т. е. с префиксом пространства имен) имени функции.

Убедитесь, что функция не имеет побочных эффектов и не манипулирует входными параметрами, а использует возвращаемые значения для передачи результатов вычислений во внешний мир.

person Tom Regner    schedule 06.07.2017