Cypher:如何在CSV文件中包含的一个节点(人)和每个其他节点(人)之间建立关系?

时间:2016-01-13 09:05:24

标签: csv neo4j cypher

我有一个csv文件,其中包含我朋友的名字(人物)列表;以及代表我(Person)的节点。我想要做的是自动在csv文件中创建我和每个其他朋友之间的“朋友”关系。

我找到了一个例子,它使用命令“FOREACH”创建了一个列表“mark,anna,jhon,bob”和一个人“x”之间的关系,但我的情况更为笼统。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用Cypher中的LOAD CSV子句,这应该非常简单:

LOAD CSV WITH HEADERS FROM 'file:///path/to/file.csv' AS line
MATCH
  (me:Person {id: {my_id}}),
  (friend:Person {id: toInt(line.id)})
WHERE {my_id} <> toInt(line.id)
CREATE (me)-[:FRIEND_WITH]->(friend)

您也可以按照文档中的说明使用LOAD CSV WITH HEADERS

我不确定你的CSV文件到底是什么样的,所以我猜了一下。您可能需要修改该文件。如果您的名字一再重复,您可以使用MERGE,并仍然使用MATCH给朋友。