Arangodb:我可以从用户功能调用用户功能吗?

时间:2015-02-06 13:20:51

标签: arangodb

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

我想分解常见的计算方法。

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

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

但如果可能,我想采用另一种方式。

2 个答案:

答案 0 :(得分:2)

每个用户功能都是完全独立的,这意味着无法从另一个用户功能中调用用户功能。

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

答案 1 :(得分:1)

我找到了如何做到这一点的方法。您可以在用户函数中使用db._query,即

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