我还是数据库和arangodb图形数据库的新手。 我尝试查询具有不同边定义的图形,但没有找到任何示例。查询以获取我找到的一条边的结果。
FOR p IN person FOR vx, ex, px IN ANY p GRAPH "test" FILTER vx.brand == "BMW" RETURN DISTINCT p
例如: 我有“人”,“车”和“房子”的顶点,还有“ has_car”(人->汽车)和“ lives_in”(人->房子)的顶点。为了测试,我创建了三个图。每个边缘定义一个,两个边缘定义一个。
我的问题:什么是正确的查询方式:
谢谢。
答案 0 :(得分:0)
如果从头开始怎么办?这样,您可以检查whole path。
例如,以下是从宝马汽车开始的(第一个问题)
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])