1

以最短的方式,我的问题如下:我需要从以下 csv 文件中获取

(https...)drive.google.com/file/d/0B-y9nPaqlH6XdXZsYzAwLThacTg/view?usp=sharing

neo4j 中的以下数据结构(使用密码导入):

https://drive.google.com/file/d/0B-y9nPaqlH6XdlZHM216eDRSX3c/view?usp=sharing

代替:

[ https://drive.google.com/file/d/0B-y9nPaqlH6XdE9vZ0gyNU1lR0U/view?usp=sharing]

更长的解释:

我想,我的问题的解决方案只需要了解(未)绑定的元素。

但是我尝试了很多次,在很多方面(首先创建单个节点,或者在空数据库中):

LOAD CSV with headers FROM "file:///C:/Users/user/Desktop/neo4j help/calling.csv"
AS csvLine

MERGE (u1:Person { number:(csvLine.A), name:(csvLine.name_A)}) MERGE (u2:Person { number:(csvLine.B), name:(csvLine.name_B)})

MERGE (u1:Person { number:(csvLine.A), name:(csvLine.name_A)})-[c:called]->(u2:Person { number:(csvLine.B), name:(csvLine.name_B)})
RETURN u1.name,c,u2.name

我得到的不是奇怪的结果,而是错误消息:

无法u1在此处使用属性或标签创建。它已经存在于这个上下文中

在没有“预合并”节点的情况下,我得到了上面的结果(在粉红色的图片中)

我需要什么才能获得想要的结果(在第一张图片中)?

4

1 回答 1

2

您不需要重新定义 u1 和 u2 节点。只需重用标识符并合并关系:

LOAD CSV with headers FROM "file:///C:/Users/user/Desktop/neo4j help/calling.csv"
AS csvLine

MERGE (u1:Person { number:(csvLine.A), name:(csvLine.name_A)}) 
MERGE (u2:Person { number:(csvLine.B), name:(csvLine.name_B)})
MERGE (u1)-[c:CALLED]->(u2)
RETURN u1.name,c,u2.name

Nb:我认为您的图像都是相同的,您可以将它们发布在您的问题中,很多人会跳过您的问题,因为他们需要再打开 2 或 3 个浏览器窗口

于 2015-08-28T15:23:48.720 回答