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
或者换句话说,匹配不关心图中的哪个位置满足条件。
希望这对您有所帮助,
汤姆
我很好奇 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
或者换句话说,匹配不关心图中的哪个位置满足条件。
希望这对您有所帮助, 汤姆