如何显示三个节点的图形,其中使用ne04j cypher通过第二节点将第一个节点连接到第三个节点?

问题描述 投票:1回答:1

我正在尝试找出(node1)-[:related_to]->(node2)-[:belongs_to]->(node3)的见解。我想根据上述关系显示为(node1)-[:belongs_to]->(node3)。创建了三个关系。

MATCH (n2:node2),(n3:node3)
WHERE n2.Name = n3.Name
CREATE (n3) <- [:BELONGS_TO]- (n2)

MATCH (n1:node2),(n2:node2)
CREATE (n1) <- [:related_to]- (n2)

MATCH (n1:node2),(n2:node2)
CREATE (n2) <- [:related_to]- (n1)

我已经尝试过此查询,但是它通过关系给了我。

MATCH (n1:node1)-[r1:related_to]-(n2:node2)-[r2:BELONGS_TO]-(n3:node3) 
RETURN n1,n2,n3

我是这个领域的新手,并试图提供一些见解。您的宝贵意见将不胜感激。

graph neo4j cypher analytics
1个回答
0
投票

如果您有(n)->(m)->(p), the relationship(n)->(p)`在数据库中不存在。

因此要做您想做的事,您将需要APOC。有一些创建虚拟图的过程/功能。

MATCH (n1:node1)-[r1:related_to]-(n2:node2)-[r2:BELONGS_TO]-(n3:node3) 
WITH n1, n3
CALL apoc.create.vRelationship(n1,'belongs_to',{​}, n3) YIELD rel
RETURN n1,n3, rel

示例:https://neo4j.com/docs/labs/apoc/current/virtual/

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.