3

我需要导入一个 CSV 文件并从每条记录中创建一个节点。我正在使用 APOC,因为据说我可以使用 CSV 文件中的列在创建节点时定义每个节点类型。

这不起作用:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) return count(*)

这是错误:

Procedure call inside a query does not support naming results implicitly (name explicitly using `YIELD` instead) (line 2, column 1 (offset: 124))
"CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) return count(*)"

我也试过这个语法:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(map.AttributeName, {key:map.NodeID}) return count(*)
4

2 回答 2

3

你可以试试这个:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) YIELD node 
RETURN count(*)

我只是YIELD在创建节点上添加东西。

干杯

于 2017-07-18T16:51:51.490 回答
1

您忘记了YIELD node呼叫后apoc.create.node程序。试试这个:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","}) YIELD map
CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) YIELD node
return count(*) 
于 2017-07-18T16:51:43.710 回答