我如何获得图表中特定关系船类型的所有节点
How do i get all nodes in the graph on a certain relation ship type
我构建了一个小图表,其中所有屏幕都连接在一起,屏幕的流量根据 system/user 而变化。所以 system/user 是关系类型。
我正在寻找从起始屏幕获取与特定关系链接的所有节点。我不关心深度,因为我不知道图表的深度。
像这样,但是下面的查询需要获得结果,并且它的 returning 不正确的连接不匹配属性 {path:'CC'}
匹配 (n:screen {isStart:true})-[r:NEXT*0..{path:'CC'}]-()
returnr,n
几点建议:
确保您已经为 :screen(isStart)
创建了一个索引:
CREATE INDEX ON :screen(isStart);
- 您确定要包含长度为 0 的路径吗?如果不是,请从您的查询中取出
0..
。
您没有指定 :NEXT 关系的方向性,因此数据库必须同时查看传入和传出 :NEXT 关系。如果合适,指定方向性。
要尽量减少结果行数,请添加 WHERE
子句以确保当前路径无法进一步扩展。
这是结合了最后 3 条建议的建议查询(根据您的需要进行修改):
MATCH (n:screen {isStart:true})-[r:NEXT* {path:'CC'}]->(x)
WHERE NOT (x)-[:NEXT {path:'CC'}]->()
return r,n;
我构建了一个小图表,其中所有屏幕都连接在一起,屏幕的流量根据 system/user 而变化。所以 system/user 是关系类型。
我正在寻找从起始屏幕获取与特定关系链接的所有节点。我不关心深度,因为我不知道图表的深度。 像这样,但是下面的查询需要获得结果,并且它的 returning 不正确的连接不匹配属性 {path:'CC'}
匹配 (n:screen {isStart:true})-[r:NEXT*0..{path:'CC'}]-() returnr,n
几点建议:
确保您已经为
:screen(isStart)
创建了一个索引:CREATE INDEX ON :screen(isStart);
- 您确定要包含长度为 0 的路径吗?如果不是,请从您的查询中取出
0..
。 您没有指定 :NEXT 关系的方向性,因此数据库必须同时查看传入和传出 :NEXT 关系。如果合适,指定方向性。
要尽量减少结果行数,请添加
WHERE
子句以确保当前路径无法进一步扩展。
这是结合了最后 3 条建议的建议查询(根据您的需要进行修改):
MATCH (n:screen {isStart:true})-[r:NEXT* {path:'CC'}]->(x)
WHERE NOT (x)-[:NEXT {path:'CC'}]->()
return r,n;