Neo4j 上载具有多个关系的csv

Neo4j 上载具有多个关系的csv,neo4j,graph-databases,Neo4j,Graph Databases,我正试图在一系列公司(包括员工等级)之间建立关系,这些公司除了投资者之外,还在一个生态系统中结成伙伴关系。我的csv中有6列:公司、投资者、客户(J标记为公司,但用于关系客户)、公司X(X标记为公司,但用于合作伙伴公司的关系)、员工(用于员工)和员工(L表示层级) 将“FILE:///econosystem.CSV”中的标题作为行加载到CSV 合并(C:Company{Company:line.Company}) 合并(I:Investor{Investor:line.Investor}) 合并

我正试图在一系列公司(包括员工等级)之间建立关系,这些公司除了投资者之外,还在一个生态系统中结成伙伴关系。我的csv中有6列:公司、投资者、客户(J标记为公司,但用于关系客户)、公司X(X标记为公司,但用于合作伙伴公司的关系)、员工(用于员工)和员工(L表示层级)

将“FILE:///econosystem.CSV”中的标题作为行加载到CSV
合并(C:Company{Company:line.Company})
合并(I:Investor{Investor:line.Investor})
合并(J:Customer{Company:line.Company})
合并(X:CompanyX{Company:line.Company})
合并(N:Employee{Employee:line.Employee})
合并(L:EmployeeL{Employee:line.Employee})

合并(C)如果您的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)
将“FILE:///econosystem.CSV”中的标题作为行加载到CSV
合并(C:公司{名称:line.Company})
合并(I:Investor{name:line.Investor})
合并(N:Employee{name:line.Employee})

合并(C)为什么在同一个值上进行3次合并
MERGE(C:Company{Company:line.Company})MERGE(J:Customer{Company:line.Company})MERGE(X:CompanyX{Company:line.Company})
。我发现,在创建关系时,如果一家公司的名称同时是客户或合作伙伴,那么它会创建单独的节点,并且关系没有连接。你有别的建议吗?我觉得你把关系和标签混淆了。试着把你的标签缩小到对孤立的事物本身有意义的范围,然后让与其他事物的关系为自己说话。例如,:Company似乎是一个很好的标签,所以请保留它,但是:Customer没有真正意义,因为这只是一个:Company,它与另一个:Company有:Customer关系。你绝对不需要:CompanyX或:EmployeeL。此外,您的属性名称似乎是多余的。为什么不让“name”成为所有这些节点的公共属性呢?你完全正确。我将创建另一个带有姓名和公司的简历,并使用MERGE(C)创建关系,谢谢。关于如何在csv文件中建立关系,然后在cypher中反映出来,有什么建议吗?我想建立公司之间的关系,如合作关系、客户等。如果我错了,请纠正我,但我认为您可以插入一列关系类型,并使用cypher上传。如果您使用apoc库和调用apoc.create.relationship(person1,'KNOWS',{key:value,…​}, 人员2)谢谢,我来试一试。另一方面,在一个名称节点上是否可以有多列信息?例如,姓名是John Doe,职位是位于加利福尼亚州的销售总裁,等等。如果是这样,关于如何将这些信息合并到一个名称节点中的任何建议?提出一个新问题,以便在此处投票
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)