Neo4j - 从属性值创建新节点和关系的层次结构

时间:2016-09-21 19:37:32

标签: neo4j cypher

我有节点,每个节点都有一个表示层次结构的属性值。层次结构中的级别数可以变化,现有节点始终显示在字符串的末尾。分隔符是'/'。

一个例子是:

Property1:'/ Level3 / Level2 / Level1' Property2:'Level1'

因此,我的问题是我可以使用某种字符串函数为level2,level3,level4等创建新节点(如果它们不存在),然后合并级别1 - 级别2,级别2 - 级别3等之间的关系?

1 个答案:

答案 0 :(得分:3)

这是一个帮助您的简单示例:

WITH split("Level2/Level3/Level4/Level5", "/") AS hierarchy 
UNWIND range(1, size(hierarchy)-1) AS i 
MERGE (l1:Level {name: hierarchy[i-1]}) 
MERGE (l2:Level {name: hierarchy[i]}) 
MERGE (l1)-[:PARENT]->(l2)

结果

enter image description here