我可以将CSV加载到Neo4j中以获取特定标签(例如PERSON
),并在标签PERSON
下创建节点。
我还有另一张CSV来说明这个人之间的关系,它看起来像:
name1, relation, name2
a, LOVE, b
a, HATE, c
我想在这些对之间创建一个关系,这样创建的关系应该是" LOVE"," HATE"等等,而不是刚刚RELATION
完成通过以下脚本:
load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p
match (a:PERSON) where a.name=p.name1
match (b:PERSON) where b.name=p.name2
merge (a)-[r:REL {relation: p.REL}]->(b)
通过这样做,我有一堆REL
- 类型的关系但不是LOVE
- 和HATE
- 关系。
换句话说,我希望动态分配脚本最后一行中的REL
。然后我可以使用Neo4j API查询所有关系类型。
这可能吗?
答案 0 :(得分:3)
您可以安装APOC library,然后使用apoc.merge.relationship
apoc.merge.relationship(startNode,relType,{key:value,...},{key:value,...},endNode) - 与动态类型的合并关系
load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p
match (a:PERSON) where a.name=p.name1
match (b:PERSON) where b.name=p.name2
call apoc.merge.relationship(a,p.REL,{},{},b) yield rel
return count(*);