如何将apoc.load.csv与apoc.create.node结合使用

如何将apoc.load.csv与apoc.create.node结合使用,csv,neo4j,cypher,neo4j-apoc,Csv,Neo4j,Cypher,Neo4j Apoc,我需要导入一个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.No

我需要导入一个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(*)

调用apoc.create.node过程后,您忘记了一个
YIELD 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(*) 

你能试试这个吗:

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(*)
我只是在create节点上添加了
YIELD
内容


干杯

,这很有帮助。我现在得到一个数据错误,所以我认为查询没有做我认为它应该做的事情。如何让它处理CSV中的每一行并从该行创建节点?这很有帮助。我现在得到一个数据错误,所以我认为查询没有做我认为它应该做的事情。如何让它处理CSV中的每一行并从该行创建一个节点?Hello@nicomp。要回答这个问题,最好了解数据集的外观。请注意,您可能在评论中提出了一个新问题。我建议您提出一个新问题,展示您的数据集样本。谢谢