csv加载到Neo4j并创建关系

csv加载到Neo4j并创建关系,neo4j,cypher,Neo4j,Cypher,我有一个csv文件,其中包含以下列和提供的示例数据,我已加载到Neo4j中,在尝试创建关系时遇到了问题 **source destination miles** a b 5 a c 6 a d 20 现在我想创建一个中间有源的图,周围有连接的目的地,并用两站之间的里程标注。(中间有源的星图),所以我尝试了下面的查询,它没有在标签上返回里程,我是Neo4j的新手,任何帮助都非常感谢,提前谢谢 LOAD

我有一个csv文件,其中包含以下列和提供的示例数据,我已加载到Neo4j中,在尝试创建关系时遇到了问题

**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个信誉点,因此您也可以回答这些问题。祝贺:-)。