以最短的方式我的问题如下: 我需要从以下csv文件中获取
(HTTPS ...)drive.google.com/file/d/0B-y9nPaqlH6XdXZsYzAwLThacTg/view?usp=sharing
neo4j中的以下数据结构(使用cypher导入):
https://drive.google.com/file/d/0B-y9nPaqlH6XdlZHM216eDRSX3c/view?usp=sharing
而不是:
[https://drive.google.com/file/d/0B-y9nPaqlH6XdE9vZ0gyNU1lR0U/view?usp=sharing]
解释时间越长:
我想,我的问题的解决方案只需要理解(un)绑定元素。
但我在很多方面尝试了很多次(首先创建单个节点,然后在空数据库中创建):
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
。它已经存在于 这个背景
如果没有“预合并”节点,我会得到上面的结果(在粉红色图片中)
我需要什么来获得想要的结果(在第一张图片中)?
答案 0 :(得分: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个以上的浏览器窗口