如何使用 CSV LOAD 从 Neo4J/Cypher 中的 csv 获取关系
How to get relation from csv in Neo4J/Cypher using CSV LOAD
我使用 Neo4J Community Edition 版本 3.2.1。
考虑这个带边的 CSV 文件:
node1,relation,node2,type
1,RELATED_TO,2,Married
2,RELATED_TO,1,Married
1,RELATED_TO,3,Child
2,RELATED_TO,3,Child
3,RELATED_TO,4,Sibling
3,RELATED_TO,5,Sibling
4,RELATED_TO,5,Sibling
我已经为此创建了节点。然后我 运行 以下 csv 加载命令:
load csv with headers from
"file:///test_dataset/edges.csv" as line
match (person1:Person {pid:line.node1}),
(person2:Person {pid:line.node2})
create (person1)-[:line.relation {type:line.type}]->(person2)
但是这个returns出现以下错误:
Invalid input '.': expected an identifier character, whitespace, '|', a length specification, a property map or ']' (line 5, column 24 (offset: 167))
"create (person1)-[:line.relation {type:line.type}]->(person2)"
看来我不能这样使用"line.relation"。如何使用 csv 加载使用 csv 文件(第二列)中的关系?
我已经看到 ,但我想使用本机查询语言来执行此操作。
为了验证查询的其余部分是否正确,我已经通过对关系进行硬编码来正确创建边,如下所示:
load csv with headers from
"file:///test_dataset/edges.csv" as line
match (person1:Person {pid:line.node1}),
(person2:Person {pid:line.node2})
create (person1)-[:RELATED_TO {type:line.type}]->(person2)
本地不可能创建具有动态标签的节点以及与动态类型[的关系] =22=].
这就是为什么有一个程序。
如果您想在本地执行此操作并且您知道 relation
列的所有不同值,您可以创建许多这样的密码脚本(每个值一个):
LOAD CSV WITH HEADERS FROM "file:///test_dataset/edges.csv" AS line
WITH line WHERE line.relation ='RELATED_TO'
MATCH (person1:Person {pid:line.node1})
MATCH (person2:Person {pid:line.node2})
CREATE (person1)-[:RELATED_TO {type:line.type}]->(person2)
我使用 Neo4J Community Edition 版本 3.2.1。
考虑这个带边的 CSV 文件:
node1,relation,node2,type
1,RELATED_TO,2,Married
2,RELATED_TO,1,Married
1,RELATED_TO,3,Child
2,RELATED_TO,3,Child
3,RELATED_TO,4,Sibling
3,RELATED_TO,5,Sibling
4,RELATED_TO,5,Sibling
我已经为此创建了节点。然后我 运行 以下 csv 加载命令:
load csv with headers from
"file:///test_dataset/edges.csv" as line
match (person1:Person {pid:line.node1}),
(person2:Person {pid:line.node2})
create (person1)-[:line.relation {type:line.type}]->(person2)
但是这个returns出现以下错误:
Invalid input '.': expected an identifier character, whitespace, '|', a length specification, a property map or ']' (line 5, column 24 (offset: 167))
"create (person1)-[:line.relation {type:line.type}]->(person2)"
看来我不能这样使用"line.relation"。如何使用 csv 加载使用 csv 文件(第二列)中的关系?
我已经看到
为了验证查询的其余部分是否正确,我已经通过对关系进行硬编码来正确创建边,如下所示:
load csv with headers from
"file:///test_dataset/edges.csv" as line
match (person1:Person {pid:line.node1}),
(person2:Person {pid:line.node2})
create (person1)-[:RELATED_TO {type:line.type}]->(person2)
本地不可能创建具有动态标签的节点以及与动态类型[的关系] =22=].
这就是为什么有一个程序。
如果您想在本地执行此操作并且您知道 relation
列的所有不同值,您可以创建许多这样的密码脚本(每个值一个):
LOAD CSV WITH HEADERS FROM "file:///test_dataset/edges.csv" AS line
WITH line WHERE line.relation ='RELATED_TO'
MATCH (person1:Person {pid:line.node1})
MATCH (person2:Person {pid:line.node2})
CREATE (person1)-[:RELATED_TO {type:line.type}]->(person2)