Cypher 查询 return 重叠?

Cypher query return overlap?

我很好奇 neo4j 如何解释以下查询以及实际 returned 是什么。

MATCH path=(p1:Student)-[f:Friends]->(p2:Student)-[f2:Friends]->(p3:Student) 
RETURN p1.studentID, p2.StudentId, p3.StudentId

我认为这是 return 链中的所有节点 link 到另一个,到另一个,再到另一个。但是,如果数据包含具有 4 个节点的链怎么办。此查询是否:1) return 无 2) return 链的前 3 个节点或 3) return 4 链中的最后 3 个节点?

example drawing of 2) and 3)

提前致谢,刚开始使用 cypher,找不到任何相关信息。

答案是... 2) 和 3) :

试试这个:

CREATE CONSTRAINT ON (s:Student) ASSERT s.StudentID IS UNIQUE;

CREATE (s1:Student {StudentID: "1"}),(s2:Student {StudentID: "2"}),(s3:Student {StudentID: "3"}),(s4:Student {StudentID: "4"}),(s1) -[:FRIENDS]-> (s2) -[:FRIENDS]-> (s3) -[:FRIENDS]-> (s4);

MATCH (sm1:Student) -[:FRIENDS]-> (sm2) -[:FRIENDS]-> (sm3) 
RETURN sm1.StudentID, sm2.StudentID, sm3.StudentID;

会 return :

1, 2, 3

2、3、4

或者换句话说,匹配不关心图中的哪个位置满足条件。

希望这对您有所帮助, 汤姆