繁体   English   中英

neo4j不要在其他两个节点之间显示节点

[英]neo4j don' display node between two other nodes

我在两种类型的节点(:Application,:City)之间具有以下关系: InstalledInUsedFrom

已在城市中安装应用程序

这意味着应用程序(软件)已安装在NewYork中并在伦敦使用。

人际关系

现在我想看看城市之间的关系(UsedFrom)。 我想要一个没有应用程序的视图。 来自城市A的用户使用来自城市B的应用。在上面的示例中(伦敦城市-AccesssApplicationIn NewYork)

我怎么能意识到这一点?

1)添加数据:

MERGE (a1:App {name:'app1'})
MERGE (a2:App {name:'app2'})
MERGE (c1:City {name:'London'})
MERGE (c2:City {name:'New York'})
MERGE (a1)-[:INSTALLED_IN]->(c2)
MERGE (a2)-[:INSTALLED_IN]->(c2)
MERGE (a1)-[:USED_FROM]->(c1)
MERGE (a2)-[:USED_FROM]->(c2)

在此处输入图片说明

2)现在我们发现城市之间的关系:

MATCH (c1:City)<-[:USED_FROM]-(a:App)-[:INSTALLED_IN]->(c2:City)
RETURN DISTINCT 'City ' + c1.name 
     + ' - [:AccessesApplicationIn] -> ' + 
       'City ' + c2.name 
AS AccessesApplicationIn

AccesssApplicationIn

City New York - [:AccessesApplicationIn] -> City New York
City London - [:AccessesApplicationIn] -> City New York

UPD

3)查询的另一种选择:

MATCH path=(:City)-[r:AccessesApplicationIn]-(:City) DELETE r 
RETURN PATH
UNION
MATCH (c1:City)<-[:USED_FROM]-(a:App)-[:INSTALLED_IN]->(c2:City)
MERGE path=(c1)-[:AccessesApplicationIn]->(c2)
RETURN DISTINCT path

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM