有关将csv导入neo4j的问题

时间:2017-04-15 18:47:51

标签: csv neo4j

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

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

1 个答案:

答案 0 :(得分:2)

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是无模式的,你不需要在具有相同标签的节点上拥有相同数量的属性