2015-02-19 6 views
12

Ich habe gerade auf Neo gestartet & versucht, nach früheren Fragen zu diesem Thema suchen. Ich brauche Hilfe, um einen der Eigenschaftenschlüssel umzubenennen.Neo4J: Umbenennen der Eigenschaftenschlüssel

Ich habe den folgenden Knoten:

CREATE (Commerce:Category {title:' Commerce', Property:'Category', Owner:'Magic Pie', Manager:'Simple Simon'}) 

Jetzt zu benennenden Titel umbenennen möchten. Gibt es einen Weg, es zu tun? Ich möchte den Knoten nicht löschen, da es 100 Knoten mit der Eigenschaft "title" gibt.

Antwort

17

Ja, Sie möchten SET eine neue Eigenschaft name mit dem Wert der alten Eigenschaft title. Und dann REMOVE die alte Eigenschaft title. So etwas wie ...

MATCH (c:Category) 
WHERE c.name IS NULL 
SET c.name = c.title 
REMOVE c.title 

Wenn Sie viele Knoten haben, ist es ratsam, den Vorgang in kleineren Mengen durchzuführen. Hier ist ein Beispiel für die Begrenzung der Operation auf 10k gleichzeitig.

MATCH (c:Category) 
WHERE c.name IS NULL 
WITH c 
LIMIT 10000 
SET c.name = c.title 
REMOVE c.title 
+0

Dies funktioniert dank !! – kkulkarn

+0

Faszinierende Tatsache, aber wenn Sie eine Abfrage an Neo4j übergeben, lädt es alles in den Speicher, bevor es die Operation ausführt. Deshalb schmilzt der Neo4j-Browser für lange Zeit, wenn Sie Monster-Anfragen ausführen. Es gibt ein "cypher shell program", das man bekommen kann, das anscheinend Abhilfe schafft, aber wie oben erwähnt, liegt es am fehlenden Batching. – agm1984