![](/img/trans.png)
[英]How to get all vertices in ArangoDB graph traversal without max?
[英]ArangoDB : How to get all the possible paths between 2 vertices?
如何獲得maxDepth = 2的2個頂點之間的所有可能路徑(例如X和Y)?
我嘗試使用TRAVERSAL
但是執行大約需要10秒鍾。 這是查詢:
FOR p IN TRAVERSAL(locations, connections, "X", "outbound", { minDepth: 1, maxDepth: 2, paths: true })
FILTER p.destination._key == "Y"
RETURN p.path.vertices[*].name
位置(頂點)集合包含23753個文檔,而連接(邊)集合具有123414文檔。
如果通過選項filterVertices
將目標過濾器直接放入Traversal中,則可以filterVertices
加快查詢速度,以提供遍歷應觸及的頂點示例。 使用vertexFilterMethod
可以定義與示例不匹配的所有頂點應該發生的情況。
因此,在您的查詢中,您只想匹配目標頂點“ Y”,並且所有其他頂點都應通過,但不包括在結果中( exclude
。
這使得后面的FILTER變得過時了。 現在,內部優化器無法自動執行此操作,但此魔術已在我們的路線圖上。
這是一個包含優化的查詢:
FOR p IN TRAVERSAL(locations, connections, "X", "outbound", { minDepth: 1, maxDepth: 2, paths: true, filterVertices: [{_key: "Y"}], vertexFilterMethod: ["exclude"]})
RETURN p.path.vertices[*].name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.