我创建了很多带有几个属性值为NULL的节点(也许它的值是“”),现在我想删除所有属性。我无法使用其属性名称逐步删除属性。 更新1: 当我呼吁浏览器match(u:User) return properties(u)
,它返回: enter image description here通过Cypher删除不知道属性名称的节点的属性
0
A
回答
0
啊,没关系,这些都是空字符串值,你猜。
我们需要一个图表范围的查询,它将查找具有空字符串属性的节点。这将不得不触及所有节点的所有属性,因此在更大的图上可能会很昂贵。
至于动态去除这些,Cypher对这种操作没有很好的支持。但是,如果您可以安装APOC Procedures,那么我们可以轻松清除这些属性。
我在这个查询中使用的方法是在节点的键上使用过滤器/提取,并创建一个到null
的键的配对,作为具有空字符串值的所有键的两元素列表。
然后,我们将使用apoc.map.fromPairs()
生成地图这些键为空值,则使用节点,将所有这些地图值适用于该节点的属性,因为设置属性有效去除这些属性在+=
操作至null
与删除它相同。
MATCH (u:User) // if you want this run for all nodes, remove the label
WITH u, [key in keys(u) WHERE u[key] = '' | [key, null]] as nullifiers
WHERE size(nullifiers) <> 0
WITH u, apoc.map.fromPairs(nullifiers) as nullifyMap
SET u += nullifyMap
+0
好的!非常感谢! –
相关问题
- 1. Neo4j/Cypher - 通过不同的属性值返回节点
- 2. 通过属性名称通过ASP.NET中的XSL选择节点
- 3. 通过属性名称
- 4. 通过属性值删除节点的XML JavaScript
- 5. 如何删除节点的属性(MSXML)
- 6. 删除文档节点上的属性
- 7. 寻找对象的属性的值与不知道属性的名称
- 8. 删除SimpleDB中的“列”名称/属性
- 9. 使用MetdataId查找已删除属性的属性名称
- 10. 当您知道使用路径的属性时,节点的名称?
- 11. 流星:通过文本属性删除属性不工作
- 12. Xpath如何通过属性C++删除子节点libxml2
- 13. 的Python:通过属性名称
- 14. 删除节点,其中属性=变量
- 15. 删除属性各个节点在XSLT
- 16. 删除属性(轨道2)
- 17. XSLT排序节点名称,则属性名称,然后根据属性值
- 18. 在pom.xml中删除属性名称
- 19. 如何让一个属性知道它所在的属性的名称?
- 20. neo4j属性名称,节点名称和边缘名称长度
- 21. Neo4j Cypher:根据节点属性的值匹配并删除子图
- 22. Cypher - 删除具有给定属性的节点并重新连接图
- 23. 如何从xml中的节点中删除重复的名称空间属性?
- 24. 如何通过C#中的属性名称获取XML节点过滤值?
- 25. 我可以通过属性名称设置属性吗?
- 26. 通过映射属性名称复制属性值
- 27. XSLT根据另一个节点的属性删除节点
- 28. Neo4j Cypher:检查路径中不连续节点的属性
- 29. 通过属性值获取节点neo4j
- 30. 通过名称获取属性
'null'永远不会是Neo4j中的属性值,这表示不存在。你可以显示你用来检测这些有问题的属性的查询吗? – InverseFalcon
对不起。它的值是带字符串值的“”。当我在浏览器上获得财产时,它返回的财产是空的 –