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č:
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ď č. 1CREATE 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