2014-01-06 4 views
4

Я пытаюсь создать некоторые уникальные отношения между объектами в neo4j. Прямо сейчас у меня есть авторы и статьи, с авторскими отношениями между ними. Я хочу, чтобы создать отношения между соавторстве субъектамиКак создать уникальные отношения neo4j 2.0

как так

match (a)-[r]->(b)<-[r2]-(c) 
create (a)-[new:CoAuthor]->(c) 

Однако, я хотел бы создать уникальный соавтора отношения, но обновить вес, если он уже существует. Я не видел этот postm но синтаксис больше не поддерживается In Cypher, how can I create a relationship if it doesn't exist; update property if it does

SyntaxException: This syntax is no longer supported (missing properties are now returned as null). Please use (not(has(<ident>.weight)) OR <ident>.weight=<value>) if you really need the old behavior. 

Я не совсем понимаю, что это такое, что я замена. Я посмотрел команду «Слияние», но не могу ее заставить работать

ответ

3

Вы должны иметь возможность заменить create на merge в этом конкретном случае.

match (a)-[r]->(b)<-[r2]-(c) 
merge (a)-[new:CoAuthor]->(c) 
on create set new.weight=1 
on match set new.weight=new.weight+1 
+1

Слияние не гарантирует уникальность. Я быстро выполнил много запросов, и он все еще создал дублированные отношения. Я что-то пропустил здесь? – yuklai

Смежные вопросы