Я пытаюсь создать уникальный узел, если он не существует, и подключить его к другому узлу, если нет отношения.Использование MERGE/CREATE UNIQUE
В этом примере я хочу получить или создать узел Year за 2001 год. Если уже есть узел 2001 года, я хочу создать отношение [: YEAR] из календаря, если оно не существует, если есть no 2001, я хочу создать и узел, и отношение. В db есть единственный узел метки «Календарь».
CREATE UNIQUE (calendar:Calendar)-[:YEAR]->(year:Year {number: 2001 }) RETURN year;
MERGE (calendar:Calendar)-[:YEAR]->(year:Year {number: 2001 }) RETURN year;
Когда я пытаюсь запросы, которые я получаю «Неизвестная ошибка»
Что похоже на работу является использование одного из этих
MERGE (calendar:Calendar) CREATE UNIQUE (calendar)-[:YEAR]->(year:Year { number:2001}) RETURN year;
MERGE (calendar:Calendar) MERGE (calendar)-[:YEAR]->(year:Year { number:2001}) RETURN year;
чем разница между двумя последними запросами, и почему не работают первые?
Консоль webadmin показывает сообщения об ошибках. Из второго запроса я получаю «SyntaxException: каким-то образом Cypher не смог построить из вашего запроса действительный план выполнения.«В любом случае, как вы сказали, этот запрос не подходит. Я не думаю, что для меня будет работать другая модель календаря, я связываю дни, годы и месяцы с событиями, чтобы увидеть, какие события произошли, когда и я думаю, что текущая модель работает лучше для этого. – user3115696