Neo4j 中连接同一节点的关系

Relationship that connect the same node in Neo4j

我会尽量简洁地解决我的问题。我有使用 .csv 文件加载的节点 Person,我还有另一个要加载的 .csv 文件 - person_speaks_language_0.csv

(得到这个 header:idPerson|languagePSL)

我怎么能把它联系起来?我怎样才能建立这种关系?

再举一个例子,和上一个很相似,我无法解决。我在 Neo4j 中加载了 Comment 节点,我需要加载另一个 .csv 文件,该文件是 - comment_replyOf_comment_0.csv

(得到他的 header: idComment|idComment)

如何加载此文件?如何连接来自同一节点的 "in and out" 关系 - 连接同一节点?

对于第一个例子。有2个选项。

如果你想让语言成为一个单独的节点,试试这个密码:

LOAD CSV FROM 'person_speaks_language_0.csv' AS line
MATCH (p:Person) 
WHERE p.id=line[0]
MERGE (p)-[r:Speaks]->(l:Language { name: line[1])})
RETURN p, l, r

或者,可能,更好的选择

LOAD CSV FROM 'person_speaks_language_0.csv' AS line
MERGE (p:Person { id:line[0] })-[r:Speaks]->(l:Language { name: line[1]) })
RETURN p, l, r

如果您希望语言成为 属性,试试这个:

LOAD CSV FROM 'person_speaks_language_0.csv' AS line
MERGE (p { id:line[0], language:line[1] })
RETURN p

RETURN 语句是可选的,您不想将它包含在大型 csv 文件中(尽管它可能对调试有用)。

对于第二个例子,试试这个:

LOAD CSV FROM 'comment_replyOf_comment_0.csv' AS line
MERGE (c1:Comment { id:line[0] })-[r:Commented]->(c2:Comment { id:line[1]) })
RETURN c1, r, c2