如何使用Cypher查询从现有关系开始在Neo4j中创建新关系?

Ste*_*tri 2 neo4j cypher

是否有一种简单的方法可以在Neo4j中创建一个新关系,从现有关系开始?

从教程中使用的actor-director-movie数据库开始,我想要做的是让图中的所有{(actor1),(actor2)}对节点满足关系:

(actor1) - [:ACTED_IN] - >(电影)< - [:ACTED_IN] - (actor2)

并使用它们来创建一个新的关系,如:

(actor1) - [:ACTED_IN_THE_SAME_MOVIE_AS] - (actor2)

在任何方向(我对定向和无向图感兴趣).有没有办法用简单的Cypher查询来做到这一点?

非常感谢,

STE

Nic*_*ite 5

使用示例影片数据集:

MATCH (actor1:Person)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(actor2:Person)
WITH actor1, actor2
MERGE (actor1)-[:ACTED_IN_THE_SAME_MOVIE_AS]-(actor2)
Run Code Online (Sandbox Code Playgroud)

  • 在当前版本中,您甚至可以使用MERGE离开方向.因此无论方向如何,它确实只创造了一种关系. (2认同)