csv加载到Neo4j并创建关系
我有一个csv文件,其中包含以下列和提供的示例数据,我已加载到Neo4j中,在尝试创建关系时遇到了问题csv加载到Neo4j并创建关系,neo4j,cypher,Neo4j,Cypher,我有一个csv文件,其中包含以下列和提供的示例数据,我已加载到Neo4j中,在尝试创建关系时遇到了问题 **source destination miles** a b 5 a c 6 a d 20 现在我想创建一个中间有源的图,周围有连接的目的地,并用两站之间的里程标注。(中间有源的星图),所以我尝试了下面的查询,它没有在标签上返回里程,我是Neo4j的新手,任何帮助都非常感谢,提前谢谢 LOAD
**source destination miles**
a b 5
a c 6
a d 20
现在我想创建一个中间有源的图,周围有连接的目的地,并用两站之间的里程标注。(中间有源的星图),所以我尝试了下面的查询,它没有在标签上返回里程,我是Neo4j的新手,任何帮助都非常感谢,提前谢谢
LOAD CSV WITH HEADERS FROM "file:///sample.csv" AS line
CREATE (s:src{id: line.source})
CREATE (d:dst{id: line.destination})
CREATE (s)-[r:trips {total: [line.miles]}]->(d)
RETURN s, d, r;
默认情况下,
LOAD CSV
要求CSV文件使用逗号分隔符,并且不支持多余的空白。尝试将CSV文件的内容更改为:
source,destination,miles
a,b,5
a,c,6
a,d,20
此外,您应该使用MERGE
而不是CREATE
来避免创建重复节点。显然不需要将里程值存储在数组中,因此此查询将其存储为标量值:
LOAD CSV WITH HEADERS FROM "file:///sample.csv" AS line
MERGE (s:src {id: line.source})
MERGE (d:dst {id: line.destination})
CREATE (s)-[r:trips {miles: line.miles}]->(d)
RETURN s, d, r;
上述结果是:
╒══════════╤══════════╤══════════════╕
│"s" │"d" │"r" │
╞══════════╪══════════╪══════════════╡
│{"id":"a"}│{"id":"b"}│{"miles":"5"} │
├──────────┼──────────┼──────────────┤
│{"id":"a"}│{"id":"c"}│{"miles":"6"} │
├──────────┼──────────┼──────────────┤
│{"id":"a"}│{"id":"d"}│{"miles":"20"}│
└──────────┴──────────┴──────────────┘
没问题。此外,由于您现在在StackOverflow中拥有>=15个信誉点,因此您也可以回答这些问题。祝贺:-)。