csv - 如何在 CSV 中指定关系类型?

标签 csv neo4j cypher

我有一个 CSV 文件,其中包含以下数据:

ID,Name,Role,Project
1,James,Owner,TST
2,Ed,Assistant,TST
3,Jack,Manager,TST

并且想要创建与项目的关系在其中指定的人员。我尝试这样做:

load csv from 'file:/../x.csv' as line 
match (p:Project {code: line[3]}) 
create (n:Individual {name: line[1]})-[r:line[2]]->(p);

但是它呕吐了:

Invalid input '[': expected an identifier character, whitespace, '|', a length specification, a property map or ']' (line 1, column 159 (offset: 158))

因为它似乎无法在关系创建中取消引用line。如果我硬编码它可以工作:

load csv from 'file:/../x.csv' as line 
match (p:Project {code: line[3]}) 
create (n:Individual {name: line[1]})-[r:WORKSFOR]->(p);

那么我该如何进行引用呢?

最佳答案

现在您不能,因为这是结构信息。

使用neo4j-import tool为此。

或者像您一样手动指定它,或者使用此解决方法:

load csv with headers from 'file:/../x.csv' as line 
match (p:Project {code: line.Project}) 
create (n:Individual {name: lineName})
foreach (x in case line.Role when "Owner" then [1] else [] end |
  create (n)-[r:Owner]->(p)
)
foreach (x in case line.Role when "Assistant" then [1] else [] end |
  create (n)-[Assistant]->(p)
)
foreach (x in case line.Role when "Manager" then [1] else [] end |
  create (n)-[r:Manager]->(p)
)

关于csv - 如何在 CSV 中指定关系类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312417/

相关文章:

java - 尝试使用变量元素名称打印 XSLT 中的节点值

c# - 验证csv文件的内容#

neo4j - 在 Neo4j 循环中创建关系并合并节点

javascript - Javascript 中的 Neo4j : Parameters not put in to query

neo4j - 简单的递归 CYPHER 查询

python - 不进入python 2.7.2中的for循环

iphone - 在xCode中读取 'CSV'文件

python - 类型错误 : Neo4j does not support PackStream parameters of type int64

neo4j - 在 Neo4j 密码查询中使用表达式限制

java - 意外的空值,neo4j