【问题标题】:Load CSV into neo4j does not fill in relationship properties将 CSV 加载到 neo4j 中不填写关系属性
【发布时间】:2016-06-08 01:36:46
【问题描述】:

没有关注我的密码查询。我有一组通过加载 CSV 成功创建的节点,并且我有第二个 CSV 正在尝试加载关系。节点及其属性都正确加载,并且关系都正确加载,但关系属性永远不会加载(没有错误,只是在我完成后没有任何关系上的道具)。

我的 CSV 文件都是无标题的,我认为这并不重要(但如果我弄错了请告诉我)。关系 csv 如下所示:

a,b,1
a,c,2
a,d,3

其中第一列是rel的出站标识符,第二列是入站标识符,第三列是我想要的关系上创建的属性。

我尝试了一些变体:

首先是这个:

USING PERIODIC COMMIT LOAD CSV FROM "file:///children.csv" AS row 
MATCH (p1:DashboardPage {path:row[0]}), (p2:DashboardPage {path:row[1]}) 
CREATE (p1)-[:CHILD {order: row[3]}]->(p2);

然后这个:

USING PERIODIC COMMIT LOAD CSV FROM "file:///children.csv" AS row 
MATCH (p1:DashboardPage {path:row[0]}), (p2:DashboardPage {path:row[1]}) 
MERGE (p1)-[c:CHILD]->(p2) ON MATCH SET c.order=toInt(row[3]);

其他几个相同的小版本。在所有情况下,一切都按预期在数据库中创建除了我试图分配给关系的属性。

【问题讨论】:

  • 好的,我稍后会自己回答这个问题,但在写完这篇文章后,我尝试了WITH HEADERS,它按预期工作。希望你们中的一个好人能够告诉我如何通过列索引来做到这一点,以防将来很重要。

标签: neo4j cypher


【解决方案1】:

您应该使用 row[2] 而不是 row[3],因为每行只有 3 个项目(索引是从 0 开始的)。

【讨论】:

  • 呃……我觉得自己像个白痴。我完全知道这一点,只是没有看到错误,尽管盯着它看...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多