隐藏neo4j中的中间节点(浏览器)
我的问题如下。我有以下节点的关系:隐藏neo4j中的中间节点(浏览器)
(Student)-[:StudiesIn]->(Class)<-[:Teaches]-(Professor)
我想在浏览器上显示的图形发生器类似的查询:
MATCH st=(a:Student)-[]-()-[]-(sir:Professor) RETURN st
这使我回包括类的关系。现在我并不关心这个特定的可视化课程,我想隐藏它。在没有实际创建(并在磁盘上存储)学生和教授之间的关系的情况下,有没有这样做的方法?
我只是想是这样的:
MATCH (a:Student)-[]-()-[]-(sir:Professor) RETURN (a)-[{name:"HasAsProfessor"}]-(sir)
但是,这并不工作。我也看了一下:http://grokbase.com/t/gg/neo4j/147evnv9j2/feature-request-virtual-relationships-in-result-sets其中的建议是这样的:
MATCH (a:Student)-[]-()-[]-(sir:Professor) RETURN {start:a, rel:"CustomRel", end:sir}
但是这并没有在浏览器中工作(因为我根本没有时间来重新从头开始实现的图形可视化工具)
谢谢你的帮助。
您可以尝试使用该程序创建virtual relationships from the APOC library:
MATCH st=(S:Student)-[:StudiesIn]->(:Class)<-[:Teaches]-(P:Professor)
WITH S, collect(distinct P) as PS
UNWIND PS as P
CALL apoc.create.vRelationship(S,'HasAsProfessor',{}, P) YIELD rel
RETURN S, rel, P
UPD:在neo4j-浏览器中显示是合适的简单技巧来创建并立即删除关系:
MATCH st=(S:Student)-[:StudiesIn]->(:Class)<-[:Teaches]-(P:Professor)
WITH S, collect(distinct P) as PS
UNWIND PS as P
MERGE (S)-[r:VirtualRelationHasAsProfessor]->(P)
DELETE r
RETURN S, r, P
您可以使用从APOC Procedures的虚拟关系,这是仅用于显示,而不是保存在数据库:
MATCH (a:Student)-[*2]-(sir:Professor)
RETURN a, sir, apoc.create.vRelationship(a,'HasAsProfessor',{}, sir) as rel
谢谢!没有图书馆没有办法做到这一点?我在我的工作场所无法访问GitHub。 – Myxoh
@Myxoh Neo4j不能在本地创建虚拟图形元素,就我所知,APOC在这里是您最好的选择。 – InverseFalcon
谢谢。寻求帮助! – Myxoh
谢谢!没有图书馆没有办法做到这一点?我在我的工作场所无法使用GitHub。 – Myxoh
@Myxoh试试更新:) –
感谢您的帮助!我想到了创建和删除(虽然那个更好,我想的那个)。 – Myxoh