1
當遍歷樹或圖(在我的情況下是一個DAG)時,我經常看到用於遞歸。 AQL是否支持或計劃在不久的將來得到這種支持?AQL中的遞歸遍歷(ArangoDb)
說我有一個AQL查詢或子查詢(遍歷),並想遞歸調用它。也許它可以包裹在Foxx中嗎?
當遍歷樹或圖(在我的情況下是一個DAG)時,我經常看到用於遞歸。 AQL是否支持或計劃在不久的將來得到這種支持?AQL中的遞歸遍歷(ArangoDb)
說我有一個AQL查詢或子查詢(遍歷),並想遞歸調用它。也許它可以包裹在Foxx中嗎?
因爲事情站在AQL本身沒有遞歸。 遞歸可以在JavaScript中使用遞歸被包裹在福克斯,例如:
var recursion = function(last) {
if (last.length > 3) {
return last;
}
return recursion(db._query("<some AQL query>", {last: last}));
}
controller.get("/recursive", function (req, res) {
res.json(recursion(["a","b","c"]));
}
對於我們計劃AQL與一些運營商延伸,以限定「對於所有的」圖遍歷或「任何」遍歷路徑上的過濾器。這可以直接處理許多模式。語法可能會是這樣的:
FOR v,e,p IN 1..12 OUTBOUND "vertex/start" edges
FILTER p.vertices[*].age ALL >= 35
RETURN v
這將不是發現長度1
的所有路徑12
所有頂點具有的屬性age
大於或等於35
。
希望這會有所幫助。