Wenn ich eine einfache Cypher-Abfrage schreibe:
MATCH (r:Person {name:"Jon"})
MATCH (s:Person {name:"Ana"})
CREATE UNIQUE (r)-[:FRIEND_OF]->(s)
Ich erhalte im Neo4j-Browser eine Warnmeldung. Die Warnmeldung lautet:
Der RULE - Planer ist in der aktuellen CYPHER - Version nicht verfügbar Abfrage wurde von einer älteren CYPHER-Version ausgeführt. CREATE UNIQUE ist für die aktuelle CYPHER-Version nicht unterstützt, wurde die Abfrage von ausgeführt eine ältere CYPHER-Version
Hier ein Druckbild der Warnmeldung:
Ich habe mit dieser Nachricht im Neo4j Github gesucht und nichts gefunden. Auch die Dokumente haben keine Abschreibungen erwähnt.
Meine Frage ist: Ist CREATE UNIQUE veraltet? Warum?
Ich benutze Neo4j 3.2.1.
Vielen Dank.
PS: Ich weiß, dass meine Anfrage refactoring sein kann. Es ist nur ein Beispiel. Auch alle Refactoring in der Abfrage mit gemacht CREATE UNINQUE
Zeige die gleiche Warnmeldung im Neo4j-Browser.
Antworten:
2 für die Antwort № 1CREATE UNIQUE wird komplett durch MERGE ersetzt. Ihre Syntax wäre also:
MATCH (r:Person {name:"Jon"})
MATCH (s:Person {name:"Ana"})
MERGE (r)-[:FRIEND_OF]->(s)
Grüße, Tom
0 für die Antwort № 2
Versuche dies
MATCH (lft:Person {name:"Jon"}),(rgt)
WHERE rgt.name IN ["Ana"]
CREATE UNIQUE (lft)-[r:KNOWS]->(rgt)
RETURN r
Beachten Sie, dass Sie auch nach mehreren Namen suchen können
MATCH (lft:Person {name:"Jon"}),(rgt)
WHERE rgt.name IN ["Ana","Maria"]
CREATE UNIQUE (lft)-[r:KNOWS]->(rgt)
RETURN r