我刚刚开始使用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']})
我查看了文档,但找不到简单的方法。有没有人有任何建议或能指出我正确的方向?
答案 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
创建关系。这取决于您是否希望文件中的每一行都有一个独特的关系(如果您不重复p
和s
,它可能甚至没有区别)