代码之家  ›  专栏  ›  技术社区  ›  lvoelk

单查询中的Cypher遍历树

  •  0
  • lvoelk  · 技术社区  · 6 年前

    假设你有下面的布局。根节点称为“组”,可以通过以下方式找到:

    MATCH (g: Group {key: $groupKey}) RETURN g;
    

    以及该组拥有的一系列消息:

    MATCH (g: Group {key: $groupKey})-[r: Owns]->(m: Message) RETURN m;
    

    每个消息可以有多个回复,也可以表示为消息

    MATCH (m: Message {key: $messageKey})-[r: Owns]->(reply: Message) RETURN reply;
    

    问题是如何在一个查询中从g遍历以检索所有消息及其答复的图形。假设不存在环形路径。

    1 回复  |  直到 6 年前
        1
  •  2
  •   cybersam    6 年前

    Message 在树上扎根 g .

    MATCH (g:Group {key: $groupKey})-[:Owns*]->(m:Message)
    RETURN g, COLLECT(DISTINCT m) AS messages;