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

将数据加载到Neo4j并创建关系,neo4j,Neo4j,我刚开始玩Neo4j,在正确加载数据时遇到了问题。我遇到的问题是,我的数据采用以下格式: A列| B列| Num消息| 用户1 |用户8 | 1| 用户1 |用户2 | 2| 用户1 |用户5 | 1| 用户2 |用户7 | 1| 用户8 |用户1 | 4| 用户5 |用户2 | 1| 我要做的是为每个唯一的用户创建一个节点,然后根据表中的行显示关系,同时考虑到一个用户可以多次出现在这两列中,但消息传递给不同的用户 当我在中加载数据时,我尝试使用以下命令:但是这会创建重复项,并且我找不到定义

我刚开始玩Neo4j,在正确加载数据时遇到了问题。我遇到的问题是,我的数据采用以下格式:


A列| B列| Num消息|
用户1 |用户8 | 1|
用户1 |用户2 | 2|
用户1 |用户5 | 1|
用户2 |用户7 | 1|
用户8 |用户1 | 4|
用户5 |用户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']})

我已经查阅了文档,找不到一个简单的方法来实现这一点。是否有人有任何建议或可以为我指出正确的方向?

您将希望
合并
开始:

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\u与
。当然,你可以自由改变


您也可以使用
MERGE
创建关系。这取决于您是否希望文件中的每一行都有一个唯一的关系(如果您不重复
p
s
,这可能不会有什么区别)

嘿,感谢您的快速回复,现在使用合并是有意义的,但是我遇到了一个奇怪的错误,似乎不喜欢它的任何信息:“无法使用id的空属性值合并节点”。我检查了我的csv文件,没有空值。我最终用merge(p:Players{name:line.id})merge(s:Players{name:line.id})merge(s:Players{name:line.id})CREATE(p)-[:PLAYS_with]>(s)解决了这个问题;谢谢您的帮助,很高兴您能解决这个问题!