与空值合并

时间:2018-01-05 04:18:04

标签: neo4j merge null cypher

所以我一直试图加载一个csv文件,参与者不得不评价他们在学习有问题时会从谁那里得到建议。该表看起来像这样:

enter image description here

字母表只是人物的名字。如您所见,此表中有空值。我试图将其加载到Neo4j中,这样我们就可以想象出谁在选择谁以及这种关系是否是互惠的。任何的想法?非常感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

使用IS NOT NULL可以解决您的问题。

LOAD CSV WITH HEADERS FROM file:///xyz.csv AS line 
WITH line LIMIT 10
RETURN line

使用此功能,您可以查看数据的加载方式。(不要忘记使用限制)。由于从CSV加载的所有值均为字符串格式,因此您将获得空列值 - > ""

您可以通过关注我引用的博客来创建您的节点。并且还使用IS NOT NULL,您可以跳过空值并创建架构。

示例:

MERGE (n:Person{name:line.Person})-[:CHOSE]-(:Study1{name:line[1]})
MERGE (n)-[:CHOSE]-(:Study2{name:line[2]})
MERGE (n)-[:CHOSE]-(:Study3{name:line[3]})
MERGE (n)-[:CHOSE]-(:Study4{name:line[4]})
MERGE (n)-[:CHOSE]-(:Study5{name:line[5]})

或者你可以使用

WITH Line[1] as Person, Line[2] as Study1 and so on...
WHERE Study5 IS NOT NULL
MERGE (n:Person{name:line.Person})-[:CHOSE]-(:Study1{name:line[1]})
MERGE (n)-[:CHOSE]-(:Study2{name:line[2]})
MERGE (n)-[:CHOSE]-(:Study3{name:line[3]})
MERGE (n)-[:CHOSE]-(:Study4{name:line[4]})
MERGE (n)-[:CHOSE]-(:Study5{name:line[5]})

有关详细信息,请参阅此example

希望这有帮助!