【问题标题】:How do I fix this Neo4j APOC query that creates nodes froma CSV file?如何修复从 CSV 文件创建节点的 Neo4j APOC 查询?
【发布时间】:2017-07-18 17:20:00
【问题描述】:

我希望查询读取 CSV 文件并为文件中的每一行创建一个节点。

这是查询:

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

这是错误:

Can't coerce `RootNode` to List<String>

这是数据文件:

NodeType,NodeID,SchemaName,TableName,AttributeName,DataType,PreviousNodeID
RootNode,queryprocessingtest.q01.testfieldatablec ,queryprocessingtest,q01,testfieldatablec ,varchar,
Node,queryprocessingtest.qc.testfieldatablec ,queryprocessingtest,qc,testfieldatablec ,varchar,queryprocessingtest.q01.testfieldatablec 
Node,queryprocessingtest.ttablec.testfieldatablec ,queryprocessingtest,ttablec,testfieldatablec ,varchar,queryprocessingtest.q01.testfieldatablec 

【问题讨论】:

    标签: csv neo4j cypher neo4j-apoc


    【解决方案1】:

    apoc.create.node 过程的第一个参数必须是 array

    所以需要将map.NodeType的值转换成数组:

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

    【讨论】:

    • 所以,只需在节点类型中添加方括号即可。惊人的。非常感谢。我不知道在哪里可以找到这些信息。
    • @nicomp 如果这个答案已经解决了你的问题,请记得accept it将此问题标记为已解决,并帮助本网站的其他用户轻松找到正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多