Hapus semua node dan hubungan di neo4j 1.8

92

Saya tahu pertanyaan ini sudah diajukan oleh banyak orang
untuk penelitian saya, inilah beberapa pertanyaan yang diajukan sebelumnya

  1. Bagaimana cara menghapus semua hubungan dalam grafik neo4j?
  2. https://groups.google.com/forum/#!topic/neo4j/lgIaESPgUgE

Tapi bagaimanapun juga, masih tidak bisa menyelesaikan masalah kami,
kami hanya ingin menghapus "SEMUA" node dan "SEMUA" hubungan

masukkan deskripsi gambar di sini

misalkan hapus "ALL" dapat melihat ada kiri 0 node 0 properti dan 0 hubungan

Ini adalah tangkapan layar yang saya ambil setelah menjalankan penghapusan "SEMUA" yang disarankan oleh forum

Pertanyaan saya masih sama, bagaimana menghapus semua node dan semua hubungan di neo4j

Huei Tan
sumber

Jawaban:

248

Mulai 2.3.0 dan hingga 3.3.0

MATCH (n)
DETACH DELETE n

Docs

Sebelum 2.3.0

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

Docs

Bob B
sumber
2
Contoh ini di dokumen Neo4j mengatakan: "Kueri ini bukan untuk menghapus data dalam jumlah besar, tetapi bagus saat bermain-main dengan contoh kumpulan data kecil.". Bertanya-tanya apakah lebih baik melakukan MATCH () - [r] - () DELETE r dan kemudian MATCH (n) DELETE n
George Birbilis
2
@GeorgeBirbilis, untuk melakukan ini pada sejumlah besar data, operasi harus dipecah melalui beberapa transaksi dan mekanisme percobaan ulang harus diterapkan.
Bob B
1
tidak yakin apakah percobaan ulang diperlukan, tetapi untuk cara iteratif melakukannya, lihat balasan oleh Stefan Armbruster di stackoverflow.com/questions/29711757/… (Saya juga menyebutkannya di akhir tautan posting blog saya yang saya miliki di jawaban terpisah)
George Birbilis
Kueri-jawaban 2.3 tidak bekerja untuk saya. Saran @GeorgeBirbilis tidak.
aliteralmind
@aliteralmind menilai dari neo4j.com/docs/2.3.0/query-delete.html mungkin masalahnya adalah setelah) baris baru diperlukan atau setidaknya spasi, karena saat ini ditulis ...) Pisahkan yang terlihat seperti a salah ketik (dan mungkin juga untuk tetap PUTUSKAN HAPUS pada baris yang sama, tetapi tidak yakin apakah itu diperlukan). Perhatikan artikel tersebut masih mengatakan "Kueri ini bukan untuk menghapus data dalam jumlah besar, tetapi bagus saat bermain-main dengan contoh kumpulan data kecil."
George Birbilis
6

Anda mungkin melakukannya dengan benar, hanya dasbor yang menampilkan ID lebih tinggi yang diambil, dan dengan demikian jumlah node "aktif", hubungan, meskipun tidak ada. itu hanya informatif.

untuk memastikan Anda memiliki grafik kosong, jalankan perintah ini:

START n=node(*) return count(n);
START r=rel(*) return count(r);

jika keduanya memberi Anda 0, penghapusan Anda berhasil.

ulkas
sumber
ya, itu benar tetapi dasbor tidak menunjukkan ID yang lebih tinggi maupun yang tertinggi
Huei Tan
ya, itulah cara mereka memprogramnya - karena ketika Anda memiliki cluster dengan miliaran node, Anda tidak ingin menghitungnya secara manual. tetapi di suatu tempat saya melihat seseorang masuk lebih dalam ke ini dan membuat semacam perbaikan javascript, mungkin jika Anda beruntung Anda akan google posting.
ulkas
3

Neo4j tidak dapat menghapus node yang memiliki relasi. Anda harus menghapus relasi sebelum Anda dapat menghapus node.

Tapi, ini adalah cara sederhana untuk menghapus "SEMUA" node dan hubungan "SEMUA" dengan chyper sederhana. Ini kodenya:

MATCH (n) Pisahkan HAPUS n

-> DETACH DELETE akan menghapus semua node dan relasi dengan Match

ardan7779
sumber
0

jika nama node adalah misalnya: abcd maka query di bawah ini akan berfungsi:

MATCH (n:abcd)
DETACH DELETE n

Ini hanya akan menghapus node dengan label "abcd" dan semua hubungannya-kapal.

Shrikant Gourh
sumber
0

Mungkin Anda ingin menghapus Kendala dan Indeks

Ruben Rosemary
sumber
-1

Ini akan berhasil ..

Match (n)-[r]-()
Delete n,r;
Pavan Kumar Varma
sumber
@TomRedfern lebih pendek! XD
Huei Tan
6
Ini tidak menghapus node tanpa hubungan, tidak seperti jawaban yang
diterima