得到NEO4j错误“预期Long(0)是org.neo4j.values.storable.TextValue,但它是org.neo4j.values.storable.LongValue”:1

时间:2019-06-18 07:08:42

标签: neo4j cypher neo4j-apoc

我是neo4j数据库的新手。我正在尝试通过加载csv文件从graph数据库中的现有节点更新特定节点。我更新后的值csv文件看起来像这样

ID,SHOPNAME,DIVISION,DISTRICT,THANA
01760,Xyz,RAJSHAHI,JOYPURHAT,Panchbibi
01761,Abc,DHAKA,GAZIPUR,Gazipur Sadar

和我的查询代码

CALL apoc.periodic.iterate('LOAD CSV WITH HEADERS FROM "file:///nodes_AGENT_U_20190610.csv" AS line return line','MERGE (p:Agent{ID:TOINT(line[0])}) ON MATCH SET p.SHOPNAME=TOINT(line[1]) ' ,{batchSize:10000, iterateList:true, parallel:true});

但我遇到错误

“预期Long(0)为org.neo4j.values.storable.TextValue,但它是org.neo4j.values.storable.LongValue”:1

我已经尝试使用TOINTEGER函数来解决此问题,但对我不起作用,请帮助我解决此问题。我正在使用Neo4j 3.5和apoc版本3.5.0.4 谢谢

2 个答案:

答案 0 :(得分:2)

使用column name加载数据时,您需要使用LOAD CSV WITH HEADERS从行/行访问值。

检查以下查询:

CALL apoc.periodic.iterate('LOAD CSV WITH HEADERS FROM 
"file:///nodes_AGENT_U_20190610.csv" AS line return line',
'MERGE (p:Agent{ID:TOINT(line.ID)}) 
ON MATCH SET p.SHOPNAME=TOINT(line.SHOPNAME) ' ,
{batchSize:10000, iterateList:true, parallel:true});

答案 1 :(得分:0)

我同意上面的答案,还有更多的知识,因为您可能会认为我在某处已经看到了这种用法:

但是,您也可以按照下面的方式使用下面的查询,但是这里没有标题,这就是为什么: 从'https://neo4j.com/docs/cypher-manual/4.0/csv/artists-fieldterminator.csv'载入CSV作为FIELDTERMINATOR';'行 创建(:Artist {名称:line [1],年份:toInteger(line [2])})