2016-02-07 4 views
7

Ich möchte update/enlarge meine Neo4j-Datenbank durch den Upload einer neueren Version dieser Datenbank ODER Teil dieser Datenbank.Neo4j Hinzufügen/Aktualisieren von Eigenschaften, wenn Knoten existiert

Von dem, was ich gefunden habe, kann ich MERGE zu add neue Knoten verwenden, nur wenn sie nicht bereits vorhanden sind. Aber in diesem Prozess, wie kann ich in einem abgespeckten add neue Eigenschaften zu diesem bestehenden Knoten, wenn sie nicht existieren?

I e, wenn ich einen Knoten 'John' of 'Age:34' and 'Hair:brown' habe und 'John'/'Age:34'/'Coat:Yellow' hochladen - wie bekomme ich 'John'/'Age:34'/'Hair:brown'/'Coat:Yellow'.

Antwort

13

Sie könnten den Knoten unter John (oder das primäre identifizierende Attribut) zusammenführen. Und dann legen Sie die Eigenschaften nach der erfolgreichen Zusammenführung fest.

Sie könnten sie alle auf einmal mit einer Karte für alle Attribute

merge (n:Node {name: 'John'}) 
set n = {name: 'John', age: 34, coat: 'Yellow', hair: 'Brown'} 
return n 

Wenn Sie nur die Attribute Alter und Mantel ersetzen wollten, können Sie dies stattdessen tun könnte.

merge (n:Node {name: 'John'}) 
set n.age = 34, n.coat = 'Yellow' 
return n 

Oder Sie es als eine Karte zu

merge (n:Node {name: 'John'}) 
set n += {age: 34, coat: 'Yellow'} 
return n 
+0

Dank viel hinzufügen können! sieht vielversprechend aus :) nur um klarzustellen: Wenn ich eine Eigenschaft auf einen Knoten setze, der diese Eigenschaft bereits hat, kann es zwei bekommen? Kann John zwei Alter haben, beide 34? Wenn ich 5 Eigenschaften auf einen Knoten setze, werden dann all diese Eigenschaften des Knotens, dh werden die "anderen" Eigenschaften gelöscht? – user1806627

+1

In den Attributen werden mit dem, was Sie bereitstellen, ersetzt. Im ersten Beispiel wird der gesamte Eintrag durch die Attribut/Wert-Paare in der Karte ersetzt. Im folgenden Beispiel werden nur die angegebenen Attribute berührt. Beachten Sie die Verwendung des zusammengesetzten Zuweisungsoperators ('+ =') im dritten Beispiel. Sie werden nicht mit zwei Altersgruppen enden, wenn Sie ein Alter festlegen und eines bereits existiert. Um das zu erreichen, müssten Sie zuerst ein bisschen mehr hantieren. –

+0

Wie kann mit mehreren Namen verschmelzen? – Vinod