Elimina tutti i nodi e le relazioni in neo4j 1.8


92

So che questa domanda è già stata posta da molte persone
per la mia ricerca, ecco alcune domande poste prima

  1. Come eliminare tutte le relazioni nel grafico neo4j?
  2. https://groups.google.com/forum/#!topic/neo4j/lgIaESPgUgE

Ma dopo tutto, non possiamo ancora risolvere i nostri problemi,
vogliamo solo eliminare "TUTTI" i nodi e le relazioni "TUTTI"

inserisci qui la descrizione dell'immagine

supponiamo che cancella "ALL" può vedere che sono rimasti 0 nodi 0 proprietà e 0 relazioni

Questo è lo screenshot che ho preso dopo aver eseguito l'eliminazione "TUTTO" suggerito dal forum

La mia domanda è sempre la stessa, come eliminare tutti i nodi e tutte le relazioni in neo4j

Risposte:


246

A partire da 2.3.0 e fino a 3.3.0

MATCH (n)
DETACH DELETE n

Docs

Pre 2.3.0

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

Docs


2
questo esempio nella documentazione di Neo4j però dice: "Questa query non serve a cancellare grandi quantità di dati, ma è utile quando si gioca con piccoli set di dati di esempio". Mi chiedo se sia meglio fare MATCH () - [r] - () DELETE re poi MATCH (n) DELETE n
George Birbilis

2
@GeorgeBirbilis, per fare ciò su grandi quantità di dati, l'operazione deve essere suddivisa in più transazioni e devono essere implementati meccanismi di riprova.
Bob B

1
non sono sicuro che sia necessario riprovare, ma per un modo iterativo di farlo, vedi la risposta di Stefan Armbruster su stackoverflow.com/questions/29711757/… (lo menziono anche alla fine del link del mio post sul blog che ho in risposta separata)
George Birbilis

La 2.3 query di risposta non funziona per me. Il suggerimento di @GeorgeBirbilis fa.
aliteralmind

@aliteralmind a giudicare da neo4j.com/docs/2.3.0/query-delete.html probabilmente il problema è che dopo) è necessaria una nuova riga o almeno un carattere spazio, poiché attualmente scrive ...) DETACH che sembra un errore di battitura (e forse anche per mantenere DETACH DELETE sulla stessa riga, ma non sono sicuro che sia richiesto). Nota che l'articolo dice ancora "Questa query non serve a eliminare grandi quantità di dati, ma è utile quando si gioca con piccoli set di dati di esempio".
George Birbilis

6

probabilmente lo stai facendo correttamente, solo il dashboard mostra solo l'ID più alto preso, e quindi il numero di nodi "attivi", relazioni, anche se non ce ne sono. è solo informativo.

per essere sicuro di avere un grafico vuoto, esegui questo comando:

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

se entrambi ti danno 0, la tua cancellazione ha avuto successo.


sì, è vero ma il cruscotto non mostra né l'ID più alto né l'ID più alto
Huei Tan

sì, è così che l'hanno programmato - dato che quando hai un cluster con miliardi di nodi, non vuoi contarli manualmente. ma da qualche parte ho visto qualcuno approfondire questo argomento e fare una sorta di correzione di javascript, forse se sarai fortunato potrai cercare su Google il post.
ulkas


2

Neo4j non può eliminare i nodi che hanno una relazione. È necessario eliminare le relazioni prima di poter eliminare i nodi.

Tuttavia, è un modo semplice per eliminare "TUTTI" i nodi e le relazioni "TUTTI" con un semplice chyper. Questo è il codice:

MATCH (n) DETACH DELETE n

-> DETACH DELETE rimuoverà tutti i nodi e le relazioni per Match


0

se il nome del nodo è ad esempio: abcd, la query di seguito funzionerà:

MATCH (n:abcd)
DETACH DELETE n

Questo cancellerà solo il nodo con l'etichetta "abcd" e tutte le sue relazioni.



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.