ArangoDB是一個多模型數據庫,支持文檔、圖形和鍵值對數據模型。AQL(ArangoDB Query Language)是用于查詢和操作ArangoDB數據庫的語言。在ArangoDB中,你可以使用AQL進行連接查詢,以便在一個查詢中獲取多個集合的數據。
以下是使用AQL進行連接查詢的一些示例:
FOR
子句進行連接查詢:FOR vertex IN VertexCollection1
FOR edge IN OUTBOUND edgeCollection1 vertex._key
FOR neighbor IN VertexCollection2
RETURN vertex, edge, neighbor
這個查詢將返回VertexCollection1中的每個頂點,以及與之相連的EdgeCollection1中的邊和VertexCollection2中的鄰居頂點。
JOIN
關鍵字進行連接查詢:FOR vertex1 IN VertexCollection1
JOIN edge IN EdgeCollection1 ON vertex1._key = edge.from
JOIN vertex2 IN VertexCollection2 ON edge.to = vertex2._key
RETURN vertex1, edge, vertex2
這個查詢將返回VertexCollection1中的每個頂點,以及與之相連的EdgeCollection1中的邊和VertexCollection2中的鄰居頂點。
WITH
子句進行連接查詢:WITH VertexCollection1 AS vertex1, EdgeCollection1 AS edge, VertexCollection2 AS vertex2
FOR vertex1 IN vertex1
JOIN edge IN edge ON vertex1._key = edge.from
JOIN vertex2 IN vertex2 ON edge.to = vertex2._key
RETURN vertex1, edge, vertex2
這個查詢與使用JOIN
關鍵字的示例相同,但使用了WITH
子句來定義中間集合。這可以使查詢更具可讀性。
在這些示例中,VertexCollection1
、EdgeCollection1
和VertexCollection2
是你要查詢的集合的名稱。你可以根據需要替換為實際的集合名稱。