In Cypher, wie kann ich eine Beziehung, wenn es nicht vorhanden ist; die update-Eigenschaft, wenn es nicht
In der Cypher in Neo4J, gegeben zwei Knoten, wenn es keine Beziehung zwischen Ihnen, würde ich mag, um eine Beziehung zu erstellen (vom Typ Foo) mit einem Gewicht von Eigentum ein. Wenn diese Beziehung bereits vorhanden ist, würde ich gerne erhöhen Sie dessen Gewicht-Eigenschaft.
Ist es ein guter Weg, um dies in einem einzigen Cypher-query? Danke!
Edit: ein Paar zusätzliche details:
Der Knoten bereits erstellt wurde, eindeutig, und in einem index.
- Sind Sie auf okay mit der Verwendung einer SNAPSHOT-version von neo4j? In neo4j 1.8 Sie können aktualisieren Sie die Grafik mit Cypher, aber nicht in anderen Versionen.
- Ja, ich bin mit der MOMENTAUFNAHME.
- So im wesentlichen Sie suchen, um zu Scannen alle Knoten und, wenn angeschlossen, Inkrement, wenn nicht, erstellen Sie eine Beziehung?
- Nikolaus, vielen Dank für die Antwort. Ich Hinzugefügt einige zusätzliche details; die Knoten sind einzigartig und indiziert, so dass ich nicht denke, ich sollte zur überprüfung aller Knoten. Aber, als die anderen, dein Kommentar ist richtig: wenn angeschlossen, Inkrement, wenn nicht, erstellen Sie Beziehungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist genau der Grund, warum wir Hinzugefügt
CREATE UNIQUE
in 1.8.Lesen Sie mehr über
CREATE UNIQUE
hier, das Fragezeichen hier, und verbinden hier.Abgeschlossen Andres Antwort, das Fragezeichen am Ende einer Eigenschaft wird nun ein Fehler mit Neo4j 2.
So wird Ihre Anfrage von :
Für die Zukunft, SCHAFFEN EINZIGARTIGE hat da schon veraltet (siehe hier). Es sieht aus wie Sie können tun, etwas ähnliches mit MATCH-und MERGE:
Also hier, Wonder Woman kämpfte Widder mindestens einmal, sonst erhöht das Gewicht.