【发布时间】:2020-09-30 12:19:53
【问题描述】:
我有一个需求,我需要递归地遍历一个图以通过中间连接节点映射出连接。
例如考虑电影图。如果两个人合作过一部电影,就可以认为他们是认识的。 通过这种间接关系,我想绘制出一个人不同层次的所有联系。
MATCH (p1:Person {name:'Tom Hanks'})-->(m:Movie)<--(p2:Person) RETURN p1, p2, apoc.create.vRelationship(p1, 'KNOWS', {movie:m.title}, p2)
这样我可以获得第一层连接,但我需要递归地执行此操作。
如果关系“知道”是真实的关系,我可以运行
MATCH (p1:Person {name:'Tom Hanks'})-[rel:KNOWS*]->(p2:Person) RETURN p1, p2, rel
但根据我阅读和尝试的内容,我无法为虚拟关系做到这一点。 我可以做些什么来实现这一目标吗?
【问题讨论】:
标签: neo4j cypher graph-databases