我創建了很多帶有幾個屬性值爲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. 如何通過Cypher中的屬性名稱字符串訪問和更改節點屬性值?
- 4. XSLT:基於名稱屬性刪除重複的節點
- 5. 通過屬性名稱
- 6. 通過屬性值刪除節點的XML JavaScript
- 7. 如何知道屬性或節點是否有不同的名稱空間?
- 8. 尋找對象的屬性的值與不知道屬性的名稱
- 9. 刪除沒有屬性的節點
- 10. 如何刪除XML節點的屬性?
- 11. 刪除文檔節點上的屬性
- 12. 如何刪除節點的屬性(MSXML)
- 13. 刪除SimpleDB中的「列」名稱/屬性
- 14. 使用MetdataId查找已刪除屬性的屬性名稱
- 15. Cypher - 從引用屬性引用節點
- 16. 訪問JavaScript的對象屬性,而不知道屬性名
- 17. 使用XPath通過名稱屬性值查找節點
- 18. 當您知道使用路徑的屬性時,節點的名稱?
- 19. 流星:通過文本屬性刪除屬性不工作
- 20. 的Python:通過屬性名稱
- 21. Xpath如何通過屬性C++刪除子節點libxml2
- 22. 刪除屬性各個節點在XSLT
- 23. XSLT刪除重複節點和屬性
- 24. C#從根節點刪除屬性
- 25. 刪除節點,其中屬性=變量
- 26. Boost屬性樹:刪除節點
- 27. 刪除屬性(軌道2)
- 28. XSLT排序節點名稱,則屬性名稱,然後根據屬性值
- 29. 在pom.xml中刪除屬性名稱
- 30. 如何知道過期屬性被刪除的文檔?
'null'永遠不會是Neo4j中的屬性值,這表示不存在。你可以顯示你用來檢測這些有問題的屬性的查詢嗎? – InverseFalcon
對不起。它的值是帶字符串值的「」。當我在瀏覽器上獲得財產時,它返回的財產是空的 –