2013-03-07 163 views
3

我們選擇了neo4j作爲我們Web應用程序的數據庫。用戶擁有大量的關係和連接節點。截至目前,用戶約有20種關係。其中一項功能是新聞推送功能。如果我想徹底刪除用戶,密碼查詢是刪除的最佳方式還是有其他選擇?刪除用戶Neo4j中的所有關係和連接節點

由於我們仍在計劃添加新功能,因此連接到用戶的關係和節點也會增加。因此,如果我們使用密碼查詢,則必須修改每個添加的新關係的查詢。請指教。

感謝, 帕

回答

7

是的,你可以使用暗號刪除用戶。當然,還有其他方法,取決於您使用的Web應用程序的語言或框架。如果您想提供相關建議,請詳細說明您如何使用Neo4j。

請注意,您必須先刪除所有關係(傳出和傳入),以便能夠刪除該節點。

例子:

START n = node(3) 
MATCH n-[r]-() 
DELETE n, r 

這個例子是從官方手冊採取:http://docs.neo4j.org/chunked/milestone/query-delete.html

+0

感謝Amorgner。是的,我在文檔中看到了這一點。這是與節點的直接關係。就我而言,這種關係非常複雜,像新聞源這樣的功能也存在。我想刪除與用戶關聯的所有節點。例如:新聞源功能,我想在刪除用戶節點之前刪除所有的狀態更新和關係。它是一個J2EE應用程序。我們正在使用spring-data neo4j。我們還使用密碼查詢來檢索數據。 – user2138493 2013-03-08 03:49:45

+0

似乎你需要像'級聯刪除'。這必須在應用程序級別上完成。我不確定SDN如何處理這個問題。在我們的框架Structr(http://structr.org)中,您可以將級聯刪除規則定義爲您的bean模型的一部分。 – 2013-03-08 16:58:49

+0

SDN不處理級聯刪除,在描述複雜的刪除操作時,密碼比任何自定義配置語言都好得多。 – 2013-03-10 09:11:50

0

另一種可能是寫穿越你的圖中的小鬼腳本開始用自己的用戶,並在兩個集合放您打算刪除的關係和節點。如果你想刪除所有的東西,也許你可以在Gremlin中實現深度優先遍歷,並在遍歷時刪除。

相關問題