ArangoDB是一個(gè)多模型數(shù)據(jù)庫,支持文檔、圖形和鍵值對(duì)數(shù)據(jù)模型。AQL(ArangoDB Query Language)是用于查詢和操作ArangoDB數(shù)據(jù)庫的語言。在ArangoDB中,你可以使用AQL進(jìn)行連接查詢,以便在一個(gè)查詢中獲取多個(gè)集合的數(shù)據(jù)。
以下是使用AQL進(jìn)行連接查詢的一些示例:
FOR
子句進(jìn)行連接查詢:FOR vertex IN VertexCollection1
FOR edge IN OUTBOUND edgeCollection1 vertex._key
FOR neighbor IN VertexCollection2
RETURN vertex, edge, neighbor
這個(gè)查詢將返回VertexCollection1中的每個(gè)頂點(diǎn),以及與之相連的EdgeCollection1中的邊和VertexCollection2中的鄰居頂點(diǎn)。
JOIN
關(guān)鍵字進(jìn)行連接查詢: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
這個(gè)查詢將返回VertexCollection1中的每個(gè)頂點(diǎn),以及與之相連的EdgeCollection1中的邊和VertexCollection2中的鄰居頂點(diǎn)。
WITH
子句進(jìn)行連接查詢: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
這個(gè)查詢與使用JOIN
關(guān)鍵字的示例相同,但使用了WITH
子句來定義中間集合。這可以使查詢更具可讀性。
在這些示例中,VertexCollection1
、EdgeCollection1
和VertexCollection2
是你要查詢的集合的名稱。你可以根據(jù)需要替換為實(shí)際的集合名稱。