노드 (8)에 두 개의 자식 노드 (13)와 노드 (14)가있는 것처럼 트리 구조가 있습니다. cyhper로 node (8)를 삭제할 때 모든 하위 항목을 삭제하는 방법은 무엇입니까?길이가 변한 노드를 삭제하는 방법
다음과 같이 작성합니다. " START r = 노드 (8) 일치 함 -> : children * 0 ..] -> d 일치 d- [x] -() Delete d, x"
작동해야하지만 실제로는 node (8) 만 삭제하고 오류가 발생합니다. 실제로 이런 컬렉션을 삭제하려고합니다.
- --- D ------------------- R
- 노드 (8)를 REL ---------- (16)
- 노드 (8) ---------- REL (17)
- 노드 (9) ---------- REL (16)
- 노드 (10) --------- Rel (17)
첫 번째 노드 (8)를 삭제하면 두 번째 노드 (8)가 삭제되고 더 이상 존재하지 않으므로 오류가 발생합니다. . 그것을 반환 :
-
I 이렇게 사이퍼를 작성할 때 유선 원인이다 : 는 "- - [아이들 * 0 ...]"이 반환 d D (8) MATCH의 R은 R = 노드 시작 " D --- ---
- 노드 (8)
- 노드 (8)
- 노드 (9)
- 노드 (10)
그리고 맞습니다. 하지만 우리가 알다시피, 나는 그들과 관계를 지울 수 없으므로 "WITH"가있는 사이퍼를 써야합니다.
"START r = node (8) MATCH r - [: children * 0 .. ] -> d d 일치 d- [x] -() Return d, x "
그리고 잘못된 결과가 다시 나타납니다.
- --- D ------------------- R
- 노드 (8)를 REL ---------- (16)
- 노드 (8) ---------- REL (17)
- 노드 (9) ---------- REL (16)
- 노드 (10) --------- Rel (17)
아무도 도와 줄 수 있습니까? 정말 우울합니다. 정말 neo4j를 좋아하지만 "삭제"부분이 너무 힘듭니다. "Force Delete"를 사용하고 Neo4j가 다음과 같이 관계를 자동으로 삭제하지 않는 이유는 무엇입니까?
"START r = node (8) MATCH r - [: children * 0 ..] -> d FORCE DELETE d"
그리고 btw, 왜 "삭제"부분에서 별개를 사용할 수 없습니까?
와우, 훌륭하게 작동합니다. 감사합니다. Neo4j 팀이 앞으로 삭제 부분을 향상시킬 수 있기를 바랍니다. – yades
BTW, 2.2.0-M03, 을 사용하고 있습니다.하지만 1.8 릴리스, 1.9 릴리스를 시도했지만 모두 동일한 문제가 있습니다. – yades