我正在尝试建立一系列公司(具有员工层次结构)之间的关系,这些公司除了投资者之外,还在一个生态系统中合作。我的csv中有6列:公司、投资者、客户(J标记为公司,但用于关系客户)、CompanyX (X标记为公司,但用于合作公司的关系)、Employee (用于员工)和EmployeeL (L表示层次结构)。
LOAD CSV WITH HEADERS FROM 'FILE:///ecosystem.csv' AS line
MERGE (C:Company {Company: line.Company })
MERGE (I:Investor {Investor: line.Investor })
MERGE (J:Customer {Company: line.Company })
MERGE (X:CompanyX {Company: line.Company })
MERGE (N:Employee {Employee: line.Employee })
MERGE (L:EmployeeL {Employee: line.Employee })
MERGE (C)<-[:works_for]-(N)
MERGE (L)<-[:reports_to]-(N)
MERGE (J)<-[:Customer]-(C)
MERGE (X)<-[:Partners]->(C)
MERGE (C)<-[:Investor]-(I);
我是不是把事情搞得太复杂了?我是Cypher的新手,我不确定我这样做是正确的,上一次我做了类似的上传,我必须清除我的数据库。另外,由于并非所有层次结构都是完整的,我如何为J/I/C输入空值?当存在空值时,我无法上传csv。
发布于 2017-05-19 05:19:32
如果您的csv中只有三列,我将创建一个查询,如下所示:
LOAD CSV WITH HEADERS FROM 'FILE:///ecosystem.csv' AS line
MERGE (C:Company {name: line.Company })
MERGE (I:Investor {name: line.Investor })
MERGE (N:Employee {name: line.Employee })
MERGE (C)<-[:Investor]-(I)
MERGE (C)<-[:works_for]-(N)
应避免将双向方向用作:works_for
和:reports_to
。检查此article。
https://stackoverflow.com/questions/44034018
复制相似问题