我正在寻找一种方法来删除数据库中任何节点的每个属性,使用Cypher具有特定值。
上下文
我从关系表中获得了一个带有大量NULL值的csv批量文件。 LOAD CSV
将它们作为价值观。删除它们(用csv文件中的空白&替换它们)会导致相同的问题(没有值的属性)。尝试了很多(很多)Cypher操作来丢弃NULL值,但没有任何效果。
无法通过Google搜索在文档中找到任何内容。这可以仅使用Cypher完成吗?在我看来,尚未得到支持。
感谢。
答案 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了。这是目前最好的解决方案。