sgp*_*sgp 23 relationship neo4j bidirectional-relation cypher
有没有办法使用Cypher在Neo4j中创建双向关系?我希望这种关系是双向的,而不是在两个方向上形成两个单向关系,例如:
(A)<-[FRIEND]->(B)
Run Code Online (Sandbox Code Playgroud)
而不是:
(A)-[FRIEND]->(B)
(A)<-[FRIEND]-(B)
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
小智 32
不,没有.neo4j中的所有关系都有一个方向,从给定节点开始和结束.
有一些解决方法.
首先,正如你所建议的那样,我们可以有两种关系,一种是从A到B,另一种是从B到A.
或者,在编写MATCH查询时,我们可以通过使用诸如的查询来指定无方向匹配模式
MATCH (A)-[FRIEND]-(B) RETURN A, B
Run Code Online (Sandbox Code Playgroud)
这不关心A是否是B的朋友,反之亦然,并允许我们在创建关系时任意选择方向.
Kac*_*che 14
根据这篇文章:在Neo4j中建模数据:双向关系
绝对更好的选择是在任意方向创建关系,而不是在查询时指定方向:
MATCH (neo)-[:PARTNER]-(partner)
Run Code Online (Sandbox Code Playgroud)
发动机能够沿任一方向穿过边缘.创建反方向边缘是不必要的,仅用于浪费空间和遍历时间.