Arangodb:我可以从用户函数调用用户函数吗?

Arangodb: Can I call a user function from a user function?

由于不允许用户函数对数据产生副作用,我想知道是否可以从一个函数调用另一个函数。

我想分解出常见的计算。

我看到的一种可能的方法是使用

var result = db._query("RETURN myfuncs::func(@a1, @a2)",
                       {'@a1': 'val1', '@a2': 'val2}, null, null).next();

但如果可能的话,我想要另一种方式。

每个用户函数都是完全独立的,这意味着不可能从另一个用户函数中调用一个用户函数。

这在未来可能会改变,但这是目前的情况(ArangoDB 2.3/2.4/2.5)。

我找到了执行此操作的方法。您可以在用户函数中使用 db._query,即

var db = require('internal').db;
var resultFromOtherUserFunc = db._query('RETURN userFunction::MyFunction(@param)', {param: true}).toArray();