neo4j中的CSV数据导入

neo4j中的CSV数据导入,neo4j,cypher,Neo4j,Cypher,我正在尝试使用以下命令从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); 我面临的问题是,虽然c

我正在尝试使用以下命令从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毫秒后完成”作为输出。我无法理解我做错了什么。请帮帮我。提前谢谢

您可以使用
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);
尝试将您的创建更改为:

从:

<代码>创建唯一的<代码> >在<代码>匹配< /代码>和<代码>创建< /代码> — 它会匹配的 它能做什么,创造什么缺失<代码>创建唯一的将始终 尽可能减少对图形的更改 — 如果可以使用 现有的图表,它将


您确定:Employee(邮件)对于所有:Employee节点都是唯一的吗?尝试在此处创建一个唯一约束,如果您遇到阻止您执行此操作的错误,则您有多个:Employee节点具有相同的邮件属性,您的匹配和随后的关系创建将创建更多的关系。@InverseFalcon感谢您的回复现在我看到所有员工节点只有240封唯一的电子邮件。现在如何解决这个问题。@InverseFalcon正如您所提到的,我将尝试为邮件创建唯一的约束,看看它是如何进行的……非常感谢Bruno Peres!你好,布鲁诺,我对比赛条款有疑问。我有一个csv文件中的员工列表。我想找出所有这些员工向列表中未列出的员工发送的邮件数量。这是得到我想要的东西的正确查询吗?从“加载带有标题的CSV”file:///subgroup.csv'AS line WITH line MATCH(b:Employee{pkey:line.subgroup})-[r:Message]->(c:Employee),其中c.pkey line.subgroup返回计数(r)
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);