【发布时间】:2017-09-18 21:28:09
【问题描述】:
无法理解返回路径中的关系方向。
我有一个这样的图表
(:START)-[:NEXT]->(:NODE)-[:NEXT]->(:NODE)...
现在我正在匹配从起始节点开始向:NEXT 方向的所有路径,最长为 10,例如。查询看起来像
MATCH t=((:START)-[:NEXT*..10]->(:NODE))
RETURN t;
我得到的输出路径似乎混淆了:NEXT 方向,例如
(:START)-[:NEXT]->(:NODE)<-[:NEXT]-(:NODE)-[:NEXT]->(:NODE)<-...
我无法理解交替方向的来源。
编辑: 该图只是一条直线(有一个方向)。没有循环,没有分支。请使用以下内容在 shell 中复制场景:
CREATE (s:START);
MATCH (s:START) MERGE (s)-[:NEXT]->(a:NODE)-[:NEXT]->(b:NODE)-[:NEXT]->(c:NODE)-[:NEXT]->(d:NODE);
MATCH t=((:START)-[:NEXT*..10]->()) return t;
+------------------------------------------------------------------------------+
| t |
+------------------------------------------------------------------------------+
| (:START)-[:NEXT]->(:NODE) |
| (:START)-[:NEXT]->(:NODE)<-[:NEXT]-(:NODE) |
| (:START)-[:NEXT]->(:NODE)<-[:NEXT]-(:NODE)-[:NEXT]->(:NODE) |
| (:START)-[:NEXT]->(:NODE)<-[:NEXT]-(:NODE)-[:NEXT]->(:NODE)<-[:NEXT]-(:NODE) |
+------------------------------------------------------------------------------+
看看在返回的路径中,箭头如何交替方向?这就是让我困惑的地方。
【问题讨论】: