Neo4j多重关系结合起来

时间:2017-04-16 09:47:29

标签: neo4j cypher

我创建了一个Cypher文件,它创建了数百种不同类型的节点,所有节点都带有唯一的标签

以下是我创建的每种类型的示例:

CREATE (G1034:Rooms{Name:"G1034"})
CREATE (GroupA:Groups{Name:"GroupA"})
CREATE (Donald:Lecturers{Name:"Donald"})
CREATE (Monday:Days{Name:"Monday"})
CREATE (Slot1:Times{Name:"9am-10Am"})
CREATE (FinalYearProject:Module{Name:"Final Year Project"})

我想要做的是在它们之间创建一个关系,就像时间表插槽

 CREATE
 (Donald)-[:TEACHES]->(FinalYearProject)-[:To]->(GroupA)-[:IN]->(G1034)-[:AT]->(Slot1)-[:ON]->(Monday)

但它似乎没有正确的语法。我是Neo4j的新手并且已经在互联网上寻找解决方案但是大多数示例最多只有两个节点相关。

有谁知道有没有办法建立这样的关系,如果有的话有办法做到这一点

任何帮助非常感谢

1 个答案:

答案 0 :(得分:0)

你错过了"课程"的概念。或"事件"

如果您想稍后创建这些关系,请先找到您的节点,然后创建连接关系。在(免费)" GraphDatabases"中有一个很好的讨论。预订那些"活动" /"消息"节点

MATCH (G1034:Rooms{Name:"G1034"})
MATCH (GroupA:Groups{Name:"GroupA"})
MATCH (Donald:Lecturers{Name:"Donald"})
MATCH (Monday:Days{Name:"Monday"})
MATCH (Slot1:Times{Name:"9am-10Am"})
MATCH (FinalYearProject:Module{Name:"Final Year Project"})

CREATE (lesson:Lesson)

CREATE
 (Donald)-[:TEACHES]->(lesson),
 (lesson)-[:TO]->(GroupA),
 (lesson)-[:IN]->(G1034),
 (lesson)-[:AT]->(Slot1),
 (lesson)-[:ON]->(Monday)
 (lesson)-[:FOR]->(FinalYearProject)