Arangodb AQL查询多个边缘定义
我也不熟悉图形数据库和arangodb。 我试图用不同的边定义查询一个图,但没有找到任何这样的例子。用于获取我找到的一条边的结果的查询 FOR p IN person FOR vx, ex, px IN ANY p GRAPH "test" FILTER vx.brand == "BMW" RETURN DISTINCT p 为p本人 对于任何p图中的vx、ex、px,“测试”过滤器vx.brand==“BMW”返回不同的p 例如: 我有顶点“人”、“车”和“房子”,边“有车”(人->车)和“住在里面”(人->房子)。为了尝试,我创建了三个图表。一个用于每个边定义,另一个用于两个边定义 我的问题:什么是正确的查询方式:Arangodb AQL查询多个边缘定义,arangodb,aql,Arangodb,Aql,我也不熟悉图形数据库和arangodb。 我试图用不同的边定义查询一个图,但没有找到任何这样的例子。用于获取我找到的一条边的结果的查询 FOR p IN person FOR vx, ex, px IN ANY p GRAPH "test" FILTER vx.brand == "BMW" RETURN DISTINCT p 为p本人 对于任何p图中的vx、ex、px,“测试”过滤器vx.brand==“BMW”返回不同的p 例如: 我有顶点“人”、“车”和“房子”,边“有车”(人->车)和
谢谢。如果你从终点开始呢?这样你就可以检查一个房间了 例如,以下是从宝马汽车开始的示例(对于第一个问题)
谢谢,如果我有时间再来一次,我会试试的。您是否也有案例2和案例3的示例?是否要存储其他关系、不同长度的可能路径,并查找所有路径?或者模型将保持与此相似?在您的案例中,使用集合集而不是命名图并以一个深度进行多次遍历可能更容易。
for car in Car filter car.brand=="BMW"
for v,e,p in 0..2 any car._id graph 'test'
filter p.edges[0]!=null && is_same_collection('has_car', p.edges[0])
&& p.vertices[1]!=null && is_same_collection('Person', p.vertices[1])
&& p.edges[1]!=null && is_same_collection('lives_in', p.edges[1])
&& p.vertices[2]!=null && p.vertices[2].house=="Castle"
return distinct(p.vertices[1])