如何在不改变数据的情况下(以图形方式)显示neo4j中的传递关系

如何在不改变数据的情况下(以图形方式)显示neo4j中的传递关系,neo4j,cypher,Neo4j,Cypher,假设我的数据包括个人、公司和国家类型的节点。 一个人在一家公司工作,而一家公司在一个国家 CREATE (Person {name:"Paul"}); CREATE (Company {brand:"BG"}); CREATE (Country {code:"UK"}); MATCH (person {name:"Paul"}),(company {brand:"BG"}) CREATE (person)-[worksat:WORKS_AT]->(company) return pers

假设我的数据包括
个人
公司
国家
类型的节点。 一个人在一家公司工作,而一家公司在一个国家

CREATE (Person {name:"Paul"});
CREATE (Company {brand:"BG"});
CREATE (Country {code:"UK"});

MATCH (person {name:"Paul"}),(company {brand:"BG"}) CREATE (person)-[worksat:WORKS_AT]->(company) return person,worksat,company
MATCH (company {brand:"BG"}),(country {code:"UK"}) CREATE (company)-[isin:IS_IN]->(country) return company,isin,country
因此,我希望能够在neo4j默认浏览器中以可视化图形的方式查看
个人->国家
数据,完全绕过中间的
公司
节点(不应可见)。 但不在Person节点和Country节点之间创建直接的永久关系


提前谢谢

您可以使用在图形结果中使用虚拟关系(这些关系不会保存到图形数据中)

这是如何工作的,前提是节点被相应地标记(您上面的创建查询没有添加标签,所以一定要解决这个问题):


浏览器不支持此操作。您需要使用另一个框架来可视化您的数据,或者需要创建一个独特的“临时”关系,然后在完成后运行
MATCH()-[r:TEMP]->()DELETE r
。虽然在这种情况下,
返回COLLECT(person)作为people,但country
可能要容易得多。(您将无法获得图表,但我认为您将获得的表格将很容易通过一目了然的方式解析)
MATCH (p:Person)-[:WORKS_AT]->()-[:IS_IN]->(c:Country)
CALL apoc.create.vRelationship(p,'WORKS_IN',{},c) yield rel
RETURN p, rel, c