【问题标题】:Cypher query return overlap?密码查询返回重叠?
【发布时间】:2017-05-04 10:46:22
【问题描述】:

我很好奇 neo4j 如何解释以下查询以及实际返回的内容。

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

我认为这是返回链中链接到另一个、另一个和另一个的所有节点。但是,如果数据包含具有 4 个节点的链怎么办。此查询是否:1)不返回任何内容 2)返回链的前 3 个节点或 3)返回 4 链中的最后 3 个节点?

example drawing of 2) and 3)

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

【问题讨论】:

    标签: neo4j cypher sna


    【解决方案1】:

    答案是...... 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;
    

    将返回:

    1、2、3

    2、3、4

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

    希望这会有所帮助, 汤姆

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-26
      • 2016-12-22
      • 2015-12-22
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多