Cypher - 删除具有特定值的所有属性

时间:2014-06-30 09:55:30

标签: neo4j cypher

我正在寻找一种方法来删除数据库中任何节点的每个属性,使用Cypher具有特定值。

上下文
我从关系表中获得了一个带有大量NULL值的csv批量文件。 LOAD CSV将它们作为价值观。删除它们(用csv文件中的空白&替换它们)会导致相同的问题(没有值的属性)。尝试了很多(很多)Cypher操作来丢弃NULL值,但没有任何效果。

无法通过Google搜索在文档中找到任何内容。这可以仅使用Cypher完成吗?在我看来,尚未得到支持。

感谢。

2 个答案:

答案 0 :(得分:4)

这个怎么样(当你知道属性名称时):

MATCH (n:Label)
WHERE n.property = ''
REMOVE n.property;

MATCH (u:User) 
WHERE u.age = '' 
SET u.age = null;

如果你知道导入哪些列,你可以做这样的事情

load csv with headers from "" as line
with line, case line.foo when '' then null else line.foo end as foo
create (:User {name:line.name, foo:foo})

它不会使用null创建属性。

对于数值,它更容易,因为toInt()和toFloat()在不可解析的值上返回null,如''。

答案 1 :(得分:0)

不,只有使用chypher才能做到这一点。我想你已经看过the way to do it via REST了。这是目前最好的解决方案。