2015-02-06 138 views
1

由於用戶函數不允許對數據產生副作用,我想知道是否可以從另一個函數調用一個函數。Arangodb:我可以從用戶功能調用用戶功能嗎?

我想分解出常見的計算。

一種可能的方式我看到的是用

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

但我想另一種方式,如果可能的。

回答

2

每個用戶功能都是完全獨立的,這意味着無法從另一個用戶功能中調用用戶功能。

這可能會在未來發生變化,但這是目前的情況(ArangoDB 2.3/2.4/2.5)。

+0

這對我們的用例來說是不幸的。我會用數據庫aproach – 2015-02-09 12:35:22

+0

來做,只是爲了記錄:在原型設計過程中,db-way有很多幫助,現在一切都移植到foxx。 – 2016-09-28 14:24:07

0

我發現如何做到這一點。你可以在用戶函數中使用db._query,即

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

解決方案/解決方法實際上是在我的問題中提到的;-) – 2016-11-30 21:40:04