/ / Neo4j / Cypher: Je CREATE UNIQUE zastarané? - neo4j, drahoušku

Neo4j / Cypher: Je CREATE UNIQUE zastaraný? - neo4j, cypher

Keď píšem jednoduchý Cypher dotaz, ako je tento:

MATCH (r:Person {name:"Jon"})
MATCH (s:Person {name:"Ana"})
CREATE UNIQUE (r)-[:FRIEND_OF]->(s)

V prehliadači Neo4j dostávam varovnú správu. Varovná správa hovorí:

Plánovač RULE nie je k dispozícii v súčasnej verzii CYPHER, dotaz bol spustený staršou verziou CYPHER. CREATE UNIQUE je pre aktuálnu verziu CYPHER nie je podporovaný, dopyt vykonal staršia verzia CYPHER

Tu je obrazovka s upozornením na tlač:

Výstražná správa

Túto správu som vyhľadával v Neo4j Github a nič som nenašiel. Dokumenty sa nezmieňujú o odpisoch.

Moja otázka je: Je CREATE UNIQUE zastarané? Prečo?

Používam Neo4j 3.2.1.

Vďaka.

PS: Viem, že môj dotaz môže byť refaktoring. Je to iba príklad. Tiež všetky refaktoringy vykonané v dotaze pomocou CREATE UNINQUE zobraziť rovnakú výstražnú správu v prehliadači Neo4j.

odpovede:

2 pre odpoveď č. 1

CREATE UNIQUE bude kompletne nahradený MERGE. Vaša syntax by teda bola:

MATCH (r:Person {name:"Jon"})
MATCH (s:Person {name:"Ana"})
MERGE (r)-[:FRIEND_OF]->(s)

S pozdravom, Tomáš


0 pre odpoveď č. 2

Skúste toto

MATCH (lft:Person {name:"Jon"}),(rgt)
WHERE rgt.name IN ["Ana"]
CREATE UNIQUE (lft)-[r:KNOWS]->(rgt)
RETURN r

Upozorňujeme, že môžete vyhľadávať aj viac podobných mien

MATCH (lft:Person {name:"Jon"}),(rgt)
WHERE rgt.name IN ["Ana","Maria"]
CREATE UNIQUE (lft)-[r:KNOWS]->(rgt)
RETURN r