1
我想使用Cypher刪除與Neo4j數據庫中的特定節點相關的連接圖形。用例是刪除「開始」節點以及存在起始節點路徑的所有節點。爲了限制交易,查詢必須是迭代的,並且不得斷開連接的圖。使用Cypher刪除連接的圖形
直到現在我使用此查詢:
OPTIONAL MATCH (start {indexed_prop: $PARAM})--(toDelete)
OPTIONAL MATCH (toDelete)--(toBind)
WHERE NOT(id(start) = id(toBind)) AND NOT((start)--(toBind))
WITH start, collect(toBind) AS TO_BIND, toDelete limit 10000
DETACH DELETE toDelete
WITH start, TO_BIND
UNWIND TO_BIND AS b
CREATE (start)-[:HasToDelete]->(b)
,並調用它,直到刪除節點等於0
有沒有更好的查詢呢?
我認爲你試過了所有連接節點的可變長度路徑和每個連接節點的DETACH DELETE?這是否炸燬你的堆? – InverseFalcon
是的,但問題是查詢不適用於大圖,多次調用查詢可能會破壞連接的圖。 – cde