从本例中获取了样本,但对其进行了修改:http://neo4j.com/docs/2.2.2/cypherdoc-importing-csv-files-with-cypher.html
USING PERIODIC COMMIT 500 LOAD CSV
WITH HEADERS FROM "http://neo4j.com/docs/2.2.2/csv/import/roles.csv" AS csvLine
MATCH (person:Person { id: toInt(csvLine.personId)}),(movie:Movie { id: toInt(csvLine.movieId)})
CREATE (person)-[:csvLine.role { role: csvLine.role }]->(movie)由于我尝试使用CSV-file中的数据来定义关系类型,因此上面的方法不起作用,但似乎没有分配。或者是因为CSV文件中的数据包含空格?
发布于 2015-06-01 21:01:09
据我所知这是不可能的。是不是有很多关系类型?如果没有,你可以这样做:
USING PERIODIC COMMIT 500 LOAD CSV
WITH HEADERS FROM "http://neo4j.com/docs/2.2.2/csv/import/roles.csv" AS csvLine
WHERE csvLine.role = 'VALUE'
MATCH (person:Person { id: toInt(csvLine.personId)}),(movie:Movie { id: toInt(csvLine.movieId)})
CREATE (person)-[:VALUE { role: csvLine.role }]->(movie)显然,对于尽可能多的唯一值,您需要复制/粘贴该位。我以前没有尝试过,所以你可能需要一个WITH之后(也许在此之前?)the WHERE
发布于 2021-02-27 12:57:28
有关该问题的答案,请参阅this post。
如果链接不起作用,请阅读有关APOC Procedure的内容。更具体地说,是apoc.create.relationship()。
USING PERIODIC COMMIT 500 LOAD CSV
WITH HEADERS FROM "http://neo4j.com/docs/2.2.2/csv/import/roles.csv" AS csvLine
MATCH (person:Person { id: toInt(csvLine.personId)}),(movie:Movie { id: toInt(csvLine.movieId)})
WITH person, movie, csvLine
CALL apoc.create.relationship(person, csvLine.role, {role: csvLine.role}, movie) YIELD rel
RETURN *https://stackoverflow.com/questions/30573450
复制相似问题