将数据加载到Neo4j并创建关系

时间:2016-02-24 14:23:04

标签: neo4j

我刚刚开始使用Neo4j,而且我无法正确加载数据。我的问题是我的数据采用以下格式:

Col A | Col B | Num Messages| User 1 | User 8 | 1 | User 1 | User 2 | 2 | User 1 | User 5 | 1 | User 2 | User 7 | 1 | User 8 | User 1 | 4 | User 5 | User 2 | 1 |

我想要做的是为每个唯一用户创建一个节点,然后根据表的行显示关系,同时考虑到用户可以多次出现在两列中,但是向另一个用户发送消息

当我加载数据时,我试图使用以下命令:但是这会产生重复,我无法找到定义关系的方法

LOAD CSV WITH HEADERS FROM "file:/data/neo_data_trial.csv" AS line 
CREATE (p:Players {id: line['1']}), (s:Players {id: line['2']})

我查看了文档,但找不到简单的方法。有没有人有任何建议或能指出我正确的方向?

1 个答案:

答案 0 :(得分:2)

您希望MERGE开始:

LOAD CSV WITH HEADERS FROM "file:/data/neo_data_trial.csv" AS line 
MERGE (p:Players {id: line['1']})
MERGE (s:Players {id: line['2']})

一旦你有了,就可以建立关系:

LOAD CSV WITH HEADERS FROM "file:/data/neo_data_trial.csv" AS line 
MERGE (p:Players {id: line['1']})
MERGE (s:Players {id: line['2']})
CREATE (p)-[:PLAYS_WITH]->(s)

我刚刚编写了关系类型PLAYS_WITH。当然,你可以随意改变它。

您也可以使用MERGE创建关系。这取决于您是否希望文件中的每一行都有一个独特的关系(如果您不重复ps,它可能甚至没有区别)