我正在尝试使用以下命令从csv文件添加示例数据库中现有员工节点之间的关系:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM
'file:///newmsg1.csv' AS line
WITH line
MATCH (e:Employee {mail: line.fromemail}), (b:Employee {mail: line.toemail})
CREATE (e)-[m:Message]->(b);
我面临的问题是,虽然csv文件中只有 71253 条目,其中每个条目都有一个" fromemail"和" toemail", 我得到" 创建240643关系,在506170 ms之后完成。"作为输出。我无法理解我做错了什么。请帮助我。提前谢谢!
答案 0 :(得分:1)
您可以使用MERGE
来确保关系的唯一性:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM
'file:///newmsg1.csv' AS line
WITH line
MATCH (e:Employee {mail: line.fromemail}), (b:Employee {mail: line.toemail})
MERGE (e)-[m:Message]->(b);
答案 1 :(得分:0)
尝试将您的创建更改为CREATE UNIQUE:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM
'file:///newmsg1.csv' AS line
WITH line
MATCH (e:Employee {mail: line.fromemail}), (b:Employee {mail: line.toemail})
CREATE UNIQUE (e)-[m:Message]->(b);
来自docs:
CREATE UNIQUE
位于MATCH
和CREATE
的中间 - 它会匹配 它能做什么,并创造缺失的东西。CREATE UNIQUE
将永远 使图表的变化最小 - 如果它可以使用的部分 现有的图表,它会。