2016-03-17 4 views
0

У меня есть массив узлов и связей. Узлы и отношения имеют свойства uuid. Это по существу подграф.Создать или обновить уникальный подграф

Я хотел бы сделать следующее, в идеале, в рамках одной команды cypher.

  • Если узел существует по UUID, я хочу, чтобы обновить свойство узла
  • Если узел не существует по UUID, я хочу, чтобы создать новый узел со свойствами
  • Если существует связь по UUID, я хочу, чтобы обновить свои свойства
  • Если отношения не существует по UUID, я хочу, чтобы создать новые отношения

Спасибо!

ответ

1

Все ваши требования будут решены с MERGE пункта:

MERGE (n:Node {uuid: {uuid} }) 
SET n += {properties} 
MERGE (n2:Node {uuid: {uuid2} }) 
SET n += {properties2} 
MERGE (n)-[r:RELATES {uuid: {relUuid} }]->(n2) 
SET n += {relProperties} 

Вы также можете играть с ON CREATE и ON MATCH, которые являются частью пункта MERGE

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