2017-05-04 7 views
1

일부 노드를 정규식으로 필터링해야하지만 Arango v2.8에는이 기능이 없으므로 사용자 기능을 등록하려고합니다. 등록 방법에 대한 예제를 제공 할 수 있습니까? 간단한 함수와 그것을 AQL에서 사용합니까?Arangov2.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() 

답변

1

당신은 사용자 함수를 등록하는 triagens/ArangoDb/AqlUserFunction를 사용합니다. 기능 등록 AQL-제표

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

함수의 정규화 된 (즉, 네임 스페이스 접두어) 이름을 사용하여, 임의의 다른 기능과 같이 사용된다.

함수가 부작용이없고 입력 매개 변수를 조작하지 말고 반환 값을 사용하여 계산 결과를 외부 세계로 전달해야합니다.