【问题标题】:Related to neo4j and csv files与 neo4j 和 csv 文件相关
【发布时间】:2021-05-28 17:15:50
【问题描述】:

enter image description here我是 neo4j 和 cypher 的新手。我想为多个子节点创建节点。我有病人文件,我有一个过敏文件,所以首先我想创建节点过敏,然后我想向这个节点添加子节点。然后我想将过敏节点添加到患者。如患者-[:有过敏症]-过敏症

START       Patent id                           DESCRIPTION 
01/05/1982 1d604da9-9a81-4ba9-80c2-de3375d59b40 Latex allergy 
10/25/1982 034e9e3b-2def-4559-bb2a-7850888ae060 Shellfish allergy 

patient.csv 包含

Id                                   BIRTHDATE   First Name      ADDRESS 
1d604da9-9a81-4ba9-80c2-de3375d59b40 5/25/1989    Josef       427 Balistreri 
034e9e3b-2def-4559-bb2a-7850888ae060 11/14/1983   milo217    422 Farrell      

CITY         STATE        COUNTY 
Chicopee Massachusetts Hampden County 
Chicopee Massachusetts Hampden County 

LOAD CSV WITH HEADERS FROM "file:///patients.csv" as row
MERGE (p:patient {name:row.FIRST, id:row.Id, birhdate:row.BIRTHDATE})
MERGE (ad: address {address : row. ADDRESS, state:row.STATE, country:row.COUNTY})
CREATE (p)-[:belongs to]->(ad);

LOAD CSV WITH HEADERS FROM "file:///allergies.csv" as row
CREATE (a: allergy{name: row. DESCRIPTION, id:row.PATIENT});
MATCH (p:patient), (a: allergy)
WHERE p.id = a.id
MERGE (p)-[:has_allergy] -> (a);

【问题讨论】:

  • 假设您有一个 neo4j 数据库可供使用,请按照本指南将数据上传到 neo4j。 neo4j.com/developer/guide-import-csv。祝你好运!
  • 感谢您的回复!我已经阅读了本指南。我可以加载文件,但我想为该文件创建节点
  • 如果是这种情况,您可以发布您编写的用于创建节点的脚本吗?有错误吗?如果是,请也发布。你能分享你的数据模型和示例文件吗?
  • 是的,我可以,其中 allergy.csv 文件包含 START 患者 ID 描述 01/05/1982 1d604da9-9a81-4ba9-80c2-de3375d59b40 乳胶过敏 10/25/1982 034e9e3b-2def-4559-bb2a- 7850888ae060 贝类过敏
  • 您创建了具有属性DESCRIPTION的过敏节点。为什么需要另一个节点呢?如果你查询你的新数据库有什么问题?

标签: csv file neo4j


【解决方案1】:

经过长时间的交谈,我无法在没有答案的情况下离开这个帖子。

allery.csv:
START,Patient_id,DESCRIPTION
01/05/1982,1d604da9-9a81-4ba9-80c2-de3375d59b40,Latex allergy
10/25/1982,034e9e3b-2def-4559-bb2a-7850888ae060,Shellfish allergy
10/25/1982,034e9e3b-2def-4559-bb2a-7850888ae060,Pollen allergy


LOAD CSV WITH HEADERS FROM "file:///allergy.csv" as row
CREATE (a: allergy {name: row.DESCRIPTION, id:row.Patient_id}) 
WITH row, a
MERGE (p:patient {id: row.Patient_id})
WITH p, a
MERGE (p)- [:has_alleries] -> (al:allergy) 
WITH al, a
MERGE (al) <- [:allergy] - (a);

给老师的评论:

  1. 不需要过敏症患者和患者之间的过敏症节点。您可以直接从过敏症患者那里转诊。
  2. 关系类型“过敏”与节点“过敏”相同。您可以使用不同的标签,例如乳胶过敏 - :of_type -> 过敏。
  3. 过敏节点ID与患者ID相同。不合适。

结果:

【讨论】:

  • 非常感谢!它真的对我有用,是的,我会将这个 cmets 告知我的老师。
  • 在学习 graphDB 上为您提供更多动力。不必是neo4j。 :D
  • 嘿,我又遇到了一个问题,就是我对同一个病人有 2 次乳胶过敏,所以创建了 2 个节点,我可以为多个相同的细胞数据创建一个节点
猜你喜欢
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2015-03-31
相关资源
最近更新 更多