首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在neo4j中执行CSV-import时,是否可以基于数据定义关系类型?

在neo4j中执行CSV-import时,是否可以基于数据定义关系类型?
EN

Stack Overflow用户
提问于 2015-06-01 20:25:26
回答 2查看 74关注 0票数 2

从本例中获取了样本,但对其进行了修改:http://neo4j.com/docs/2.2.2/cypherdoc-importing-csv-files-with-cypher.html

代码语言:javascript
复制
USING PERIODIC COMMIT 500 LOAD CSV 
WITH HEADERS FROM "http://neo4j.com/docs/2.2.2/csv/import/roles.csv" AS csvLine 
MATCH (person:Person { id: toInt(csvLine.personId)}),(movie:Movie { id: toInt(csvLine.movieId)}) 
CREATE (person)-[:csvLine.role { role: csvLine.role }]->(movie)

由于我尝试使用CSV-file中的数据来定义关系类型,因此上面的方法不起作用,但似乎没有分配。或者是因为CSV文件中的数据包含空格?

EN

回答 2

Stack Overflow用户

发布于 2015-06-01 21:01:09

据我所知这是不可能的。是不是有很多关系类型?如果没有,你可以这样做:

代码语言:javascript
复制
USING PERIODIC COMMIT 500 LOAD CSV 
WITH HEADERS FROM "http://neo4j.com/docs/2.2.2/csv/import/roles.csv" AS csvLine
WHERE csvLine.role = 'VALUE'
MATCH (person:Person { id: toInt(csvLine.personId)}),(movie:Movie { id: toInt(csvLine.movieId)}) 
CREATE (person)-[:VALUE { role: csvLine.role }]->(movie)

显然,对于尽可能多的唯一值,您需要复制/粘贴该位。我以前没有尝试过,所以你可能需要一个WITH之后(也许在此之前?)the WHERE

票数 1
EN

Stack Overflow用户

发布于 2021-02-27 12:57:28

有关该问题的答案,请参阅this post

如果链接不起作用,请阅读有关APOC Procedure的内容。更具体地说,是apoc.create.relationship()

代码语言:javascript
复制
USING PERIODIC COMMIT 500 LOAD CSV 
WITH HEADERS FROM "http://neo4j.com/docs/2.2.2/csv/import/roles.csv" AS csvLine 
MATCH (person:Person { id: toInt(csvLine.personId)}),(movie:Movie { id: toInt(csvLine.movieId)}) 
WITH person, movie, csvLine
CALL apoc.create.relationship(person, csvLine.role, {role: csvLine.role}, movie) YIELD rel
RETURN *
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30573450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档