/ / Neo4j / Cypher: CREATE UNIQUE está obsoleto? - neo4j, cifra

Neo4j / Cypher: O comando CREATE UNIQUE está obsoleto? - neo4j, cypher

Quando escrevo uma consulta Cypher simples como esta:

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

Estou recebendo uma mensagem de alerta no navegador Neo4j. A mensagem de alerta diz:

O planejador RULE não está disponível na versão atual do CYPHER, o A consulta foi executada por uma versão mais antiga do CYPHER. CREATE UNIQUE é sem suporte para a versão atual do CYPHER, a consulta foi executada por uma versão mais antiga do CYPHER

Aqui, uma tela de impressão da mensagem de alerta:

Mensagem de alerta

Procurei por esta mensagem no Neo4j Github e não encontrei nada. Além disso, os documentos não mencionam nenhuma depreciação.

Minha pergunta é: CREATE UNIQUE está obsoleto? Por quê?

Estou usando o Neo4j 3.2.1.

Obrigado.

PS: Eu sei que minha consulta pode estar se refatorando. É apenas um exemplo. Além disso, toda a refatoração feita na consulta usando CREATE UNINQUE mostre a mesma mensagem de alerta no navegador Neo4j.

Respostas:

2 para resposta № 1

CREATE UNIQUE está definido para ser completamente substituído por MERGE. Portanto, sua sintaxe seria:

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

Saudações, Tom


0 para resposta № 2

Tente isso

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

Observe que você pode procurar vários nomes também como este

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