在neo4j中的多个值节点之间创建关系

在neo4j中的多个值节点之间创建关系,neo4j,cypher,Neo4j,Cypher,使用属性input和output在节点之间创建关系,其中一个节点的输出值成为另一个节点的输入值。 例如,我有4个节点,每个节点都有属性: 输入:[y],输出:[a,b] 输入:[a],输出:[c] 输入:[b],输出:[d] 输入:[c,d]输出:[x] 这是我的密码: MATCH (n:node), (m:node) WITH n.output as output, m.input as input FOREACH (output in n | FOREACH (input in

使用属性
input
output
在节点之间创建关系,其中一个节点的输出值成为另一个节点的输入值。 例如,我有4个节点,每个节点都有属性:

  • 输入:[y],输出:[a,b]
  • 输入:[a],输出:[c]
  • 输入:[b],输出:[d]
  • 输入:[c,d]输出:[x]
  • 这是我的密码:

    MATCH (n:node), (m:node)
    WITH n.output as output, m.input as input
    FOREACH (output in n |
           FOREACH (input in m |
                   MATCH n, m
                   WHERE output = input
                   MERGE (n)-[:NEXT_TO]->(m)
           )
    )
    

    上面的密码输出应该是从节点
    1
    到节点
    2
    3
    的关系
    NEXT\u,从节点
    2
    到节点
    4
    的关系
    NEXT\u到
    ,从节点
    3
    到节点
    4
    的关系
    NEXT\u到
    可能是这样的吗

    MATCH (n:node)
    UNWIND n.output as output
    MATCH (m:node) WHERE output IN m.input
    MERGE (n)-[:NEXT_TO]->(m)