关于导入CSV到Neo4j的

问题描述:

问题我有一个关于导入CSV三个问题:关于导入CSV到Neo4j的

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

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,则相应的属性值将是空为好。如果为空,则该属性将不会创建

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

+0

谢谢。关于2),列值不是NULL,列只是空的。相应的属性值是否也为空? – Aqqqq

+0

所以如果列是空的,那么属性值将不会被设置。编辑我的答案 –

+0

对于1):我的意思是“WITH row”是必需的,而“Merge ...”不是? – Aqqqq