【问题标题】:Neo4j 'match' within 'unwind' operationNeo4j 在“展开”操作中“匹配”
【发布时间】:2016-10-06 00:43:48
【问题描述】:

我有一个 Neo4j 查询,我试图获取所有不同的 id,然后对于每个 id,返回与该 id 匹配的所有节点。这是我的查询的样子:

match (x:Log) with collect(distinct x.id) as ids 
unwind ids as i 
match (y:Log {id:i}) return y;

我希望此查询的结果将按 id 分组,也就是每行有多个节点,其中每行包含共享一个 id 的所有节点。相反,它每行只返回一个节点,并且有多行具有相同的 id。如何获得按 id 分组的结果?

示例:假设标签Log有五个节点。其中两个日志节点具有id='abc',其中三个具有id='123'。现在,我的查询返回五行,每行包含一个节点,但我希望它返回两行:一行包含id='123' 的所有日志节点,另一行包含@987654325 的所有日志节点@。

【问题讨论】:

    标签: neo4j cypher graph-databases


    【解决方案1】:

    这将在每行返回一个不同的 id,以及具有该 ID 的节点:

    MATCH (x:Log)
    RETURN x.id AS id, COLLECT(x) as nodes;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多