Xóa tất cả các nút và mối quan hệ trong neo4j 1.8


92

Tôi biết câu hỏi này đã được nhiều người đặt ra
cho nghiên cứu của tôi, đây là một số câu hỏi được hỏi trước đây

  1. Làm thế nào để xóa tất cả các mối quan hệ trong biểu đồ neo4j?
  2. https://groups.google.com/forum/#!topic/neo4j/lgIaESPgUgE

Nhưng sau tất cả, vẫn không thể giải quyết vấn đề của chúng tôi,
chúng tôi chỉ muốn xóa các nút "TẤT CẢ" và các mối quan hệ "TẤT CẢ"

nhập mô tả hình ảnh ở đây

giả sử xóa "TẤT CẢ" có thể thấy còn lại 0 nút 0 thuộc tính và 0 mối quan hệ

Đây là ảnh chụp màn hình tôi đã chụp sau khi thực hiện xóa "TẤT CẢ" do diễn đàn đề xuất

Câu hỏi của tôi vẫn vậy, làm thế nào để xóa tất cả các nút và tất cả các mối quan hệ trong neo4j

Câu trả lời:


246

Kể từ 2.3.0 và lên đến 3.3.0

MATCH (n)
DETACH DELETE n

Docs

Trước 2.3.0

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

Docs


2
mẫu này trong tài liệu Neo4j mặc dù cho biết: "Truy vấn này không phải để xóa một lượng lớn dữ liệu, nhưng rất hay khi sử dụng các tập dữ liệu mẫu nhỏ.". Wonder nếu nó tốt hơn để làm MATCH () - [r] - () r DELETE và sau đó làm MATCH (n) DELETE n
George Birbilis

2
@GeorgeBirbilis, để thực hiện việc này trên một lượng lớn dữ liệu, hoạt động phải được chia nhỏ qua nhiều giao dịch và phải thực hiện cơ chế thử lại.
Bob B

1
không chắc liệu có cần thử lại hay không, nhưng để biết cách lặp đi lặp lại, hãy xem câu trả lời của Stefan Armbruster tại stackoverflow.com/questions/29711757/… (Tôi cũng đề cập đến nó ở cuối liên kết bài đăng trên blog của tôi mà tôi có ở câu trả lời riêng)
George Birbilis

Truy vấn câu trả lời thứ 2,3 không hoạt động với tôi. @GeorgeBirbilis gợi ý không.
aliteralmind

@aliteralmind đánh giá từ neo4j.com/docs/2.3.0/query-delete.html có lẽ vấn đề là sau đó) cần có dòng mới hoặc ít nhất là ký tự khoảng trắng, vì hiện tại nó viết ...) DETACH trông giống như một lỗi đánh máy (và cũng có thể giữ DETACH DELETE trên cùng một dòng, nhưng không chắc liệu điều đó có được yêu cầu hay không). Lưu ý rằng bài báo vẫn nói "Truy vấn này không phải để xóa một lượng lớn dữ liệu, nhưng rất hay khi sử dụng các tập dữ liệu mẫu nhỏ."
George Birbilis

6

có thể bạn đang làm đúng, chỉ có bảng điều khiển hiển thị ID cao hơn được lấy và do đó số lượng các nút, mối quan hệ "đang hoạt động", mặc dù không có. nó chỉ là thông tin.

để đảm bảo bạn có một biểu đồ trống, hãy chạy lệnh sau:

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

nếu cả hai đều cho bạn 0, thì việc xóa của bạn đã thành công.


ya, đó là sự thật nhưng bảng điều khiển không hiển thị không cao cũng không phải là ID cao nhất
Huei Tân

vâng, đó là cách họ đã lập trình nó - vì khi bạn có một cụm với hàng tỷ nút, bạn không muốn đếm chúng theo cách thủ công. nhưng ở đâu đó tôi đã thấy ai đó đi sâu hơn vào vấn đề này và thực hiện một số loại sửa lỗi javascript, có thể nếu may mắn bạn sẽ google bài đăng.
ulkas

5

đối với cơ sở dữ liệu lớn, bạn nên xóa cơ sở dữ liệu khỏi đĩa (tôi đoán sau khi bạn dừng động cơ trước) hoặc sử dụng trong Cypher một cái gì đó như:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
WITH n,r LIMIT 50000
DELETE n,r
RETURN count(n) as deletedNodesCount

xem https://zoomicon.wordpress.com/2015/04/18/howto-delete-all-nodes-and-relationships-from-neo4j-graph-database/ để biết thêm thông tin mà tôi đã thu thập về vấn đề này từ nhiều câu trả lời khác nhau


2

Neo4j không thể xóa các nút có mối quan hệ. Bạn phải xóa các quan hệ trước khi có thể xóa các nút.

Tuy nhiên, đó là cách đơn giản để xóa các nút "TẤT CẢ" và các mối quan hệ "TẤT CẢ" bằng một chyper đơn giản. Đây là mã:

MATCH (n) XÓA ĐOẠN N

-> DETACH DELETE sẽ loại bỏ tất cả các nút và quan hệ bằng Match


0

nếu tên của nút là ví dụ: abcd thì truy vấn dưới đây sẽ hoạt động:

MATCH (n:abcd)
DETACH DELETE n

Điều này sẽ chỉ xóa nút có nhãn "abcd" và tất cả các mối quan hệ của nó.



-1

Nó sẽ thực hiện thủ thuật ..

Match (n)-[r]-()
Delete n,r;

@TomRedfern ngắn hơn! XD
Huei Tan

6
Điều này không xóa các nút không có mối quan hệ, không giống như câu trả lời đã được chấp nhận
Protongun
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.