【发布时间】:2017-04-15 18:47:51
【问题描述】:
我有三个关于导入 csv 的问题:
- 是否可以使命令忽略 csv 文件中的第一行? (由于要导入的文件较多,不方便全部更改)
- 如果 csv 文件中的对应属性为空,是否可以使关系或节点的属性为空?
- 是否可以拥有具有不同(数量)属性的相同类型的节点?
【问题讨论】:
我有三个关于导入 csv 的问题:
【问题讨论】:
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 是无模式的,您不需要在具有相同标签的节点上拥有相同数量的属性
【讨论】: