【问题标题】:Multiple LOAD CSV statements in one Cypher query一个 Cypher 查询中的多个 LOAD CSV 语句
【发布时间】:2020-05-24 17:34:48
【问题描述】:

尝试在一个密码查询中从不同的 .csv 文件导入行并创建节点:

// User nodes
LOAD CSV WITH HEADERS
FROM 'file:///profile.csv' AS profile_line
CREATE (user:User { userId: profile_line.User })

// Project nodes
LOAD CSV WITH HEADERS
FROM 'file:///project.csv' AS project_line
CREATE (project:Project { projectId: project_line.projectId })

// Image nodes
LOAD CSV WITH HEADERS
FROM 'file:///media.csv' AS image_line
CREATE (image:Image { imageId: '<imageId>' })

引发以下错误:

"在 CREATE 和 LOAD CSV 之间需要 WITH (第 9 行,第 1 列(偏移量:211)) "CREATE (project:Project { projectId: project_line.projectId })"

我不清楚 WITH 语句应该如何构造。

【问题讨论】:

    标签: csv neo4j cypher load-csv


    【解决方案1】:

    如果您使用的是 Neo4j 浏览器,最简单的方法是用分号分隔您的语句并打开“多语句查询编辑器”(这也为您提供了一个很好的小进度指示器作为每个语句正在运行):

    LOAD CSV WITH HEADERS
    FROM 'file:///profile.csv' as profile_line
    CREATE (user: User { userId: profile_line.User });
    
    LOAD CSV WITH HEADERS
    FROM 'file:///project.csv' as project_line
    CREATE (project: Project { projectId: project_line.projectId });
    
    LOAD CSV WITH HEADERS
    FROM 'file:///media.csv' as image_line
    CREATE (image: Image { imageId: image_line.ImageId });
    

    否则,仍然可以这样做。我们想要的是一个 WITH 语句,该语句将返回一行,而不管之前的 CREATE 最终创建了多少节点,因此任何聚合函数都可以。例如:

    LOAD CSV WITH HEADERS
    FROM 'file:///profile.csv' as profile_line
    CREATE (user: User { userId: profile_line.User })
    
    WITH max(1) as dummy
    LOAD CSV WITH HEADERS
    FROM 'file:///project.csv' as project_line
    CREATE (project: Project { projectId: project_line.projectId })
    
    WITH max(1) as dummy
    LOAD CSV WITH HEADERS
    FROM 'file:///media.csv' as image_line
    CREATE (image: Image { imageId: image_line.ImageId })
    
    Added 9 labels, created 9 nodes, set 9 properties, completed after 17 ms.
    

    虽然我认为这对未来的你来说非常不清楚,但我不会推荐它。

    【讨论】:

    • 查询将通过 python 脚本调用,所以我选择了第二种方法。到目前为止效果很好。
    猜你喜欢
    • 2021-12-19
    • 2018-12-13
    • 2023-03-16
    • 2010-09-05
    • 2010-09-25
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多