假设我们有一个包含各种关系类型节点的 CSV。是否有一个选项可以在一个查询中加载 CSV,允许将每种关系类型显示为关系名称,而无需将 CSV 分解为单独的文件(每个关系类型一个)?(我们不想将关系类型作为属性添加到 Edge)。
Id1 | Id2 | RelationshipType
1 | 2 | type1
1 | 3 | type2
2 | 3 | type1
...
Run Code Online (Sandbox Code Playgroud)
我们希望稍后使用类似于以下的查询来显示和查询数据:
MATCH l=(p:Id1) - [:type1] - (p:Id2) RETURN l;
MATCH l=(p:Id1) - [:type2] - (p:Id2) RETURN l;
Run Code Online (Sandbox Code Playgroud)
您可以使用APOC 程序来完成 apoc.create.relationship。
考虑这个 CSV 文件:
Id1|Id2|RelationshipType
1|2|type1
1|3|type2
2|3|type1
Run Code Online (Sandbox Code Playgroud)
该LOAD CSV查询将是:
LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS line FIELDTERMINATOR '|'
WITH line
MERGE(node0:Node {id : line.Id1})
MERGE(node1:Node {id : line.Id2})
WITH node0, node1, line
CALL apoc.create.relationship(node0, line.RelationshipType, {}, node1) YIELD rel
RETURN *
Run Code Online (Sandbox Code Playgroud)
结果图将是:
注意:记得根据你使用的Neo4j版本安装APOC程序。查看版本兼容性矩阵。
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |