我正在寻找一种方法来删除数据库中任何节点的每个属性,使用 Cypher 具有特定值。
上下文
我从关系表中获得了一个 csv 批量文件,其中包含大量 NULL 值。LOAD CSV将它们作为价值观。删除它们(用 csv 文件中的空“”替换它们)会导致相同的问题(没有值的属性)。尝试了很多(很多)Cypher 操作来丢弃 NULL 值,但没有任何效果。
通过谷歌搜索也无法在文档中找到任何内容。仅使用 Cypher 可以完成此操作吗?在我看来(尚未)支持。
谢谢。
怎么样(当你知道属性名称时):
MATCH (n:Label)
WHERE n.property = ''
REMOVE n.property;
MATCH (u:User)
WHERE u.age = ''
SET u.age = null;
Run Code Online (Sandbox Code Playgroud)
如果您知道导入中包含哪些列,您可以执行以下操作
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})
Run Code Online (Sandbox Code Playgroud)
它不会创建带有 null 的属性。
对于数字值,更容易,因为 toInt() 和 toFloat() 在不可解析的值(如 '')上返回 null。
| 归档时间: |
|
| 查看次数: |
3637 次 |
| 最近记录: |