【问题标题】:Can two way relation be created in single CREATE query?可以在单个 CREATE 查询中创建双向关系吗?
【发布时间】:2023-01-20 07:55:46
【问题描述】:
当我有两个双向连接的节点时,我使用两个创建查询来连接它们:
MATCH (london:City {name: "London"})
MATCH (dublin:City {name: "Dublin"})
CREATE (london)-[:Flight {length: 450}]->(dublin)
CREATE (dublin)-[:Flight {length: 450}]->(London);
由于两个方向的飞行长度相同,是否可以创建双向关系,这样我就不需要两个 CREATE 查询?
【问题讨论】:
标签:
cypher
memgraphdb
opencypher
【解决方案1】:
您不能创建双向关系,每条边都有一个方向(尽管您可以沿任一方向遍历边)。鉴于并非所有航线都有返程,我倾向于使用两条边对此类关系进行建模,以防万一有一天返程被取消并且您必须以不同的方式回家。在创建关系方面,您可以使用以下模式一次性创建它们。
MATCH (london:City {name: "London"})
MATCH (dublin:City {name: "Dublin"})
CREATE (london)-[:Flight {length: 450}]->(dublin)-[:Flight {length: 450}]->(London)