/ / Neo4j / Cypher: Ist CREATE UNIQUE veraltet? - neo4j, Chiffre

Neo4j / Cypher: Ist CREATE UNIQUE veraltet? - neo4j, Chiffre

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:

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 № 1

CREATE 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