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
是你要查询的集合的名称。你可以根据需要替换为实际的集合名称。