【问题标题】:Neo4J - How to 2 import CSV files with relationship between them?Neo4J - 如何 2 导入 CSV 文件以及它们之间的关系?
【发布时间】:2017-10-02 12:11:58
【问题描述】:

我确实有两个 CSV 文件:员工和部门。我可以使用以下查询将它们加载到Neo4J

LOAD CSV WITH HEADERS FROM "file:///Path/to/myCSVfile/depart.csv" AS row
CREATE (:Department{departmentID:toInt(row.id),name:row.name, depart_manager:toInt(row.department_manager)});

LOAD CSV WITH HEADERS FROM "file:///Path/to/myCSVfile/Empl.csv" AS row
CREATE (:Employee{employeeID:toInt(row.id),firstName:row.first_name, lastName:row.last_name, email:row.email, 
startDate:row.startdate, birthDay:row.birthdate, function:row.function, departementId:row.depart_id});

现在我想添加它们之间的关系......换句话说,每个员工都应该属于一个特定的部门(depart_id)。

CSV 文件已经导入,我可以显示每个标签的节点。

如何达到这个目标?是否可以在导入后使用脚本/查询执行此操作,还是应该使用不同的脚本重新导入它们?

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    您可以尝试在第二个 LOAD CSV 语句的末尾添加所需的关系。

    像这样:

    LOAD CSV WITH HEADERS FROM "file:///Path/to/myCSVfile/depart.csv" AS depRow
    CREATE (:Department{departmentID:toInt(depRow.id),name:depRow.name, depart_manager:toInt(depRow.department_manager)})
    WITH *
    LOAD CSV WITH HEADERS FROM "file:///Path/to/myCSVfile/Empl.csv" AS empRow
    CREATE (employee:Employee{employeeID:toInt(empRow.id),firstName:empRow.first_name, lastName:empRow.last_name, email:empRow.email, 
    startDate:empRow.startdate, birthDay:empRow.birthdate, function:empRow.function, departmentId:empRow.depart_id})
    WITH employee
    // Adding relation between employee and department
    MATCH (dep:Department {departmentID : employee.departmentId})
    CREATE (employee)-[:BELONGS_TO]->(dep)
    

    【讨论】:

    • 错误:WITH is required between CREATE and MATCH (line 6, column 1 (offset: 478)) "MATCH (dep:Department{departmentID:row.depart_id})"。我认为WITH employee, row 应该在MATCH 之后。你怎么看?
    • 太棒了!作品。抱歉,要显示(表格和/或图表)有关系的员工会是:MATCH (n:Employee)-[:BELONGS_TO]->(d:Department) RETURN n LIMIT 25。我不幸得到:(no changes, no records)
    • @k.vincent MATCH(n) RETURN n的回报是什么?
    • 我得到了两个(结果为图表) - 员工和部门。我想绘制一个包含关系的图表......假设箭头表示员工与部门的关系。
    • 当 tryiny 时:MATCH (n1)--(n2) RETURN n1, n2 LIMIT 50 看起来 Employee 和 Department 之间没有关系。 (no changes, no records)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    相关资源
    最近更新 更多