用一个匹配查询创建 2 个关系?

Create 2 relationships with one match query?

我想转:

MATCH (a:link)
  MATCH (b:node {id:a.us_node_id})
    CREATE (a)-[r:ds_link]->(b)
MATCH (a:link)
  MATCH (b:node {id:a.us_node_id})
    CREATE (b)-[r:us_node]->(a)

变成类似这样的东西:

MATCH (a:link)
  MATCH (b:node {id:a.us_node_id})
    CREATE (a)-[r:ds_link]->(b),
    CREATE (b)-[r:us_node]->(a)

这可行吗?因为第二个看起来比第一个整洁多了。

是的,我们鼓励使用第二种方法,因为它更简洁(您通常不需要重新匹配到已经在范围内的节点)。

不过,您可能会遇到语法错误,因此要么使用一个以逗号分隔模式的 CREATE,要么使用两个 CREATE,它们之间没有任何逗号。

像这样:

MATCH (a:link)
  MATCH (b:node {id:a.us_node_id})
    CREATE (b)-[:ds_link]->(a),
           (a)-[:us_node]->(b)