2016-08-01 2 views
0

Я бегу neo4j-community-3.0.0-M05.Предложение MERGE в Neo4j Cypher запрос не работает

Я использую предложение MERGE из Query Language Neo4J. Его объяснение given следующего

Он действует как сочетание MATCH или CREATE, который проверяет наличие данных первым, прежде чем создавать его. С помощью MERGE вы определяете шаблон, который нужно найти или создать. Обычно, как и в случае с MATCH, вы хотите включить ключевое свойство для поиска в свой основной шаблон. MERGE позволяет предоставить дополнительные свойства, которые вы хотите установить ON CREATE.

У меня уже есть следующий узел:

(:Movie{title:"Forrest Gump", released:1994}) 

и теперь я хотел бы добавить фиктивное свойство addedOn с фиктивным значением 20160108 ему просто попробовать MERGE пункт:

MERGE (a:Movie{title:"Forrest Gump"}) 
ON CREATE SET a.addedOn= "20160108" 
RETURN a; 

Однако это, похоже, не работает:

enter image description here

Почему это так?

ответ

1

То, что вы видите, является именно ожидаемым поведением.

С MERGE находит ваш существующий Forrest Gump, этот узел используется. Обработчик ON CREATE не будет срабатывать, поскольку вы ничего не создали.

Если у вас был обработчик ON MATCH, этот был бы уволен с тех пор, как матч MERGE был успешным.

+0

отличное ... добавлено 'ON MATCH':' MERGE (a: Movie {title: "Forrest Gump"}) ON MATCH SET a.addedOn = "20160108" ON CREATE SET a.addedOn = "20160108" RETURN а; '. Не знал об этом. – Mahesha999

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