节点和关系的 Neo4j 导入
Neo4j import for Nodes and Relationships
嗨,我一直在尝试建立一个类似于社交网络的图形数据库,我的问题是我可以从一个名为 Messages.csv 的 csv 文件创建节点,然后使用 Messages.csv?
这是我创建用户的第一个导入语句:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Users.csv' AS csvLineB
CREATE (n:Users {
UserID: csvLineB[0],
Firstname: csvLineB[1],
Surname: csvLineB[2],
DOB: csvLineB[3],
Email: csvLineB[4],
Phone: csvLineB[5]});
然后我使用以下方法导入消息:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Messages.csv' AS csvLineD
CREATE (n:Message {
MessageID :csvLineD[0],
MessageContent:csvLineD[1]});
此时所有节点都正确显示。
然后我尝试从消息 csv 文件中的附加字段创建关系,这些是与 UserID 相对应的 SenderID 和 RecipientID,但是当我 运行 以下语句时它不会执行任何东西:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Message.csv' AS csvLineE
MATCH (sender:Users)
WHERE sender.id = csvLineE[3]
MATCH (receiver:Users)
WHERE receiver.id = csvLineE[2]
MATCH (msg:Message)
WHERE msg.id = csvLineE[0]
MERGE(sender)-[:SENT]->(msg)<-[:RECEIVED]-(receiver);
谁能告诉我我做错了什么?
非常感谢任何帮助。
您的第三个查询使用了错误的 属性 ID 名称。试试这个:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Message.csv' AS csvLineE
MATCH (sender:Users)
WHERE sender.UserID = csvLineE[3]
MATCH (receiver:Users)
WHERE receiver.UserID = csvLineE[2]
MATCH (msg:Message)
WHERE msg.MessageID = csvLineE[0]
MERGE(sender)-[:SENT]->(msg)<-[:RECEIVED]-(receiver);
嗨,我一直在尝试建立一个类似于社交网络的图形数据库,我的问题是我可以从一个名为 Messages.csv 的 csv 文件创建节点,然后使用 Messages.csv?
这是我创建用户的第一个导入语句:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Users.csv' AS csvLineB
CREATE (n:Users {
UserID: csvLineB[0],
Firstname: csvLineB[1],
Surname: csvLineB[2],
DOB: csvLineB[3],
Email: csvLineB[4],
Phone: csvLineB[5]});
然后我使用以下方法导入消息:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Messages.csv' AS csvLineD
CREATE (n:Message {
MessageID :csvLineD[0],
MessageContent:csvLineD[1]});
此时所有节点都正确显示。
然后我尝试从消息 csv 文件中的附加字段创建关系,这些是与 UserID 相对应的 SenderID 和 RecipientID,但是当我 运行 以下语句时它不会执行任何东西:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Message.csv' AS csvLineE
MATCH (sender:Users)
WHERE sender.id = csvLineE[3]
MATCH (receiver:Users)
WHERE receiver.id = csvLineE[2]
MATCH (msg:Message)
WHERE msg.id = csvLineE[0]
MERGE(sender)-[:SENT]->(msg)<-[:RECEIVED]-(receiver);
谁能告诉我我做错了什么?
非常感谢任何帮助。
您的第三个查询使用了错误的 属性 ID 名称。试试这个:
USING PERIODIC COMMIT
LOAD CSV FROM 'file:/Users/Oliver/Desktop/Assessment_CSV/Assessment_table_Message.csv' AS csvLineE
MATCH (sender:Users)
WHERE sender.UserID = csvLineE[3]
MATCH (receiver:Users)
WHERE receiver.UserID = csvLineE[2]
MATCH (msg:Message)
WHERE msg.MessageID = csvLineE[0]
MERGE(sender)-[:SENT]->(msg)<-[:RECEIVED]-(receiver);