簡體   English   中英

ArangoDB:遍歷邊緣連接到其他邊緣的遍​​歷

[英]ArangoDB: Traversals where edges are connected to other edges

我最近讀到ArangoDB能夠將邊連接到圖中的其他邊。 在這種情況下,如何查詢路徑工作? 例如:

car <-------- part
        ^
        |
        |
installationEvidence

在這種情況下, installationEvidence是連接到汽車零件之間邊緣的節點。 從汽車節點開始,返回installationEvidence的AQL是什么但不是part installationEvidencepart在所考慮的p.vertices[1]層?

在ArangoDB中,邊緣是一種特殊類型的文檔。 這就是為什么你可以存儲指向其他邊緣的邊緣。 從查詢的角度來看,這條邊有兩個方向:A)遍歷通向target edge 在這種情況下,假設它是一般類型的文檔,並且遍歷將不遵循target edge任何方向。 這意味着您必須在語句中編寫2個遍歷步驟。 邊緣的第一個結尾。 第二個從邊緣的_from_to開始。 在您的情況下,查詢可能如下所示:

FOR edge IN 1 OUTBOUND @installationEvidece @@edges1
  LET car = DOCUMENT(edge._to)
  RETURN car

B)遍歷穿過邊緣,該邊緣具有指向它的其他邊緣。 這種情況比較復雜。 在ArangoDB的架構中,“頂點”對它的附着邊緣一無所知,邊緣知道它們的頂點。 在這種情況下你可以做的是再次寫兩個遍歷語句,其中第二個以遇到的邊開始,例如:

FOR part,edge IN 1 INBOUND @car @@edges1
  FOR installationEvidence IN 1 INBOUND edge @@edges2
    [...]

目前我們沒有遇到客戶的任何使用案例,使上述遍歷更加透明。 如果這對您至關重要,請與我們聯系,我們可以提高優先級,使這些查詢更容易制定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM