Ich habe den Fehler gemacht, mit Attributtypen zu inkonsistent zu sein. Für Knoten vom Typ "person" haben einige eine Zeichenfolge für die Eigenschaft "external_id" und einige haben eine int. Ich möchte alle Knoten löschen, bei denen die Eigenschaft eine Zeichenfolge ist. Die folgende Abfrage wird ausgeführt und scheint eine korrekte Antwort zu geben.Neo4j/Cypher Löschen mit Where "Unbekannter Bezeichner"
MATCH (n:person)
WHERE TOSTRING(n.external_id) = n.external_id
RETURN count(n)
Allerdings, wenn ich versuchen, diese Knoten mithilfe der folgenden Abfrage zu löschen, erhalte ich "Unknown Kennung` n`.":
MATCH (n:person)
WHERE TOSTRING(n.external_id) = n.external_id
DELETE n
Ich bin neu zu Neo4j und Cypher, aber das scheint, als sollte es ziemlich einfach sein. Ich habe bereits alle Beziehungen für diese Knoten gelöscht. Was fehlt mir hier?
Scheint wie eine Parse-Ausnahme festgelegt wurde, können Sie versuchen, mit 'DETACH delete' statt' delete' –
Ich verwende Neo4j 2.2.5, so 'DETACH 'ist nicht verfügbar. Aber ich denke nicht, dass das wichtig sein sollte, die Knoten, die ich löschen möchte, haben keine Beziehungen. –
Richtig, also ich habe gerade in 2.3.1 getestet und ohne DETACH DELETE funktionierte es auch nicht. Ich werde eine Version 2.2.5 zur Überprüfung aufdrehen. –