获取 NEO4j 错误 "Expected Long(0) to be a org.neo4j.values.storable.TextValue, but it was a org.neo4j.values.storable.LongValue":1
Getting NEO4j Error "Expected Long(0) to be a org.neo4j.values.storable.TextValue, but it was a org.neo4j.values.storable.LongValue": 1
我是 neo4j 数据库的新手。我正在尝试通过加载 csv 文件来更新图形数据库中现有节点的特定节点。我的更新值 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});
但我收到错误
"Expected Long(0) to be a org.neo4j.values.storable.TextValue, but it was a org.neo4j.values.storable.LongValue": 1
我已经尝试使用 TOINTEGER 函数来解决这个问题,但对我不起作用,请帮助我解决这个问题。我正在使用 Neo4j 3.5 和 apoc 版本 3.5.0.4
谢谢
当使用 LOAD CSV WITH HEADERS
加载数据时,您需要使用 column name
从 line/row 访问值。
检查以下查询:
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});
我同意上面的回答,还有一些知识,你可能会认为我在某处看到过这种用法:
然而,您也可以按照您使用的方式使用下面的查询,但这里您没有 headers 这就是原因:
从 'https://neo4j.com/docs/cypher-manual/4.0/csv/artists-fieldterminator.csv' 加载 CSV AS line FIELDTERMINATOR ';'
创建(:艺术家{名称:行[1],年份:toInteger(行[2])})
我是 neo4j 数据库的新手。我正在尝试通过加载 csv 文件来更新图形数据库中现有节点的特定节点。我的更新值 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});
但我收到错误
"Expected Long(0) to be a org.neo4j.values.storable.TextValue, but it was a org.neo4j.values.storable.LongValue": 1
我已经尝试使用 TOINTEGER 函数来解决这个问题,但对我不起作用,请帮助我解决这个问题。我正在使用 Neo4j 3.5 和 apoc 版本 3.5.0.4 谢谢
当使用 LOAD CSV WITH HEADERS
加载数据时,您需要使用 column name
从 line/row 访问值。
检查以下查询:
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});
我同意上面的回答,还有一些知识,你可能会认为我在某处看到过这种用法:
然而,您也可以按照您使用的方式使用下面的查询,但这里您没有 headers 这就是原因: 从 'https://neo4j.com/docs/cypher-manual/4.0/csv/artists-fieldterminator.csv' 加载 CSV AS line FIELDTERMINATOR ';' 创建(:艺术家{名称:行[1],年份:toInteger(行[2])})