【问题标题】:Questions regarding importing csv into neo4j关于将csv导入neo4j的问题
【发布时间】:2017-04-15 18:47:51
【问题描述】:

我有三个关于导入 csv 的问题:

  1. 是否可以使命令忽略 csv 文件中的第一行? (由于要导入的文件较多,不方便全部更改)
  2. 如果 csv 文件中的对应属性为空,是否可以使关系或节点的属性为空?
  3. 是否可以拥有具有不同(数量)属性的相同类型的节点?

【问题讨论】:

    标签: csv neo4j


    【解决方案1】:

    1) 是的,您也可以在 LOAD CSV 中使用 SKIP:

    LOAD CSV WITH HEADERS FROM "file:///dummyfile.csv" AS row
    WITH row
    SKIP 1
    MERGE (n:Node {id: row[0]})
    

    2) 如果 csv 列的值为 NULL,则相应的属性值也将为 null。如果为空,则不会创建该属性

    假设以下 CSV :

    id,title,desc
    1,title 1,desc1
    2,,desc 2
    

    还有下面的 LOAD CSV :

    LOAD CSV WITH HEADERS FROM "https://gist.githubusercontent.com/ikwattro/ed85bfc98c9298924c154ecf3e0ab2aa/raw/54a9303c365a7698c87728d458f8de703a9c22e1/load.csv" AS row
    CREATE (n:Post {id: row['id'], title: row['title'], description: row['desc']})
    

    这将创建以下内容:

    ╒══════════════════════════════════════════════════╕
    │"n"                                               │
    ╞══════════════════════════════════════════════════╡
    │{"description":"desc1","id":"1","title":"title 1"}│
    ├──────────────────────────────────────────────────┤
    │{"description":"desc 2","id":"2"}                 │
    └──────────────────────────────────────────────────┘
    

    3) 是的,Neo4j 是无模式的,您不需要在具有相同标签的节点上拥有相同数量的属性

    【讨论】:

    • 谢谢。关于2),列值不是NULL,列只是空的。相应的属性值也会为空吗?
    • 所以如果该列为空,则不会设置属性值。编辑我的答案
    • 对于 1):我是否正确地认为“WITH row”是必不可少的,而“Merge...”不是?
    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多