neo4j:LOAD CSV将CSV的第一个数据记录加倍

时间:2014-11-23 19:26:37

标签: csv neo4j cypher

我的查询中有一个错误 - 任何帮助都会非常感激。我使用LOAD CSV将数据导入我的数据库。用于测试的CSV是

"User1","Group1"
"User2","Group2"
"User3","Group3"
"User1","Group1"
"User2","Group2"

导入的结果应为

  • 每个用户都作为节点导入而没有双重输入
  • 导入的每个组都没有双重条目
  • 实施用户与群组之间的关系

我使用此查询:

LOAD CSV FROM "file:....." AS csvLine
MERGE (u:User { name: csvLine[0]})
MERGE (g:Group { name: csvLine[1]}) 
CREATE (u)-[:IS_MEMBER_OF]->(g)

每当我运行导入时,我都会按预期获得一个例外。 csv文件中的第一个用户总是加倍 - 我总是有两个带有第一个用户名的节点。所有其他用户只存在一次。我很乐意了解这种方法有什么问题 - 任何意见都表示赞赏。

由于 Balael

1 个答案:

答案 0 :(得分:2)

我尝试了这个,最终得到了3个用户,3个群组以及完全按照您的期望连接它们的关系:

load csv from "https://gist.githubusercontent.com/mneedham/256b809f5622aebc311f/raw/0be2d9fac59ee453314c140f778c25b8fcad4b4c/file.csv" as csvLine
MERGE (u:User { name: csvLine[0]})
MERGE (g:Group { name: csvLine[1]}) 
CREATE (u)-[:IS_MEMBER_OF]->(g)

你能否显示出来的输出:

MATCH (u:User) RETURN u

MATCH (g:Group) RETURN g

由于 标记