У меня есть узел с тремя свойствами, скажем, что-то созданное как
create (a:item{type:'detergent', weight:'500g', 'quantity':322})
И еще один узел, такой как
create (b:customer{id:'933B3'})
Должна существовать связь со свойством count
от узла a
до узла b
.
Я хочу создать связь с count = 1
, если связь еще не существует, в противном случае обновите значение счетчика, добавив к нему 1, что-то вроде set relationship.count = relationship.count + 1
Я могу использовать MERGE
вместе с ON CREATE
и ON MATCH
для этой цели. Однако вот в чем проблема:
MERGE соответствует целому шаблону, тогда как я хочу сопоставить только два свойства узла a, а не все три.
Поэтому технически я хочу создать отношения между
a:item{type:'detergent', weight:'500g'}
и b:customer{id:'933B3'}
Это означает, что все узлы с label = item , type = моющим средством и weight = 500g должны иметь отношения с клиентом id = 933B3 независимо от количества моющего средства.
Если я использую MERGE для двух свойств узла a, это не создаст взаимосвязи между существующим узлом элемента (который имеет 3 свойства) и клиентским узлом, а скорее создаст новые узлы со свойствами, указанными в MERGE. Как упоминалось выше, мне также необходимо обновить свойство count, если выясняется, что связь уже существует.
Как можно сопоставить выбранные свойства уже существующих узлов, чтобы создать связь между существующими узлами с помощью инициализирующего значения свойства, а в противном случае обновить значение свойства связи, которая уже существует?