2017-08-03 203 views
2

我正在导入从关系数据库导出的.CSV文件。导入过程很顺利,但是当我尝试在创建的节点之间创建关系时,使用其分配的标签,它正在为关系创建新节点,而不是使用现有标签。我已经对我的头撞了3天 - 有什么想法?neo4j导入CSV与关系

代码:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///seshatdata/sellable_unit_features.csv" AS line 
WITH line, SPLIT(line.ship_dt, '-') AS date 

CREATE (sellableunit:SellableUnit {sellable_unit_id: line.sellable_unit_id, sellable_unit_nm: line.sellable_unit_nm, sellable_unit_version_id: line.sellable_unit_version_id}) 
MERGE (feature:Feature {Feature_id:line.feature_id, feature_nm: line.feature_nm}) 

CREATE (SellableUnit)-[r:CONTAINS]->(Feature) 

SET r.start_year = TOINT(date[0]); 

显然它是这里的罪魁祸首行CREATE (SellableUnit)-[r:CONTAINS]->(Feature) - 我只是不知道是什么原因。

回答

1

您的Cypher查询有错字错误。 Cypher对于variable declarations区分大小写。

变量名称是区分大小写的,可以包含下划线和 字母数字字符(A-Z,0-9),但必须以一个 字母开头。如果需要其他字符,你可以引用变量 使用反引号(')签署

试试:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///seshatdata/sellable_unit_features.csv" AS line 
WITH line, SPLIT(line.ship_dt, '-') AS date 

CREATE (sellableunit:SellableUnit {sellable_unit_id: line.sellable_unit_id, sellable_unit_nm: line.sellable_unit_nm, sellable_unit_version_id: line.sellable_unit_version_id}) 
MERGE (feature:Feature {Feature_id:line.feature_id, feature_nm: line.feature_nm}) 

CREATE (sellableUnit)-[r:CONTAINS]->(feature) 

SET r.start_year = TOINT(date[0]); 

你的存储节点到一个名为sellableUnit(小写字母S)可变的,但使用在CREATE声明中称为SellableUnit(大写字母S)的变量。 feature也一样。

+0

有时你只是太接近问题才能看到它 - 谢谢布鲁诺! –

+0

是的,你是对的! :) 不用谢! –