Пожалуйста, извините за простоту вопроса, возможно - я новичок!
У меня есть несколько тысяч узлов и несколько десятков отношений, но отношения в значительной степени основаны на ряде правил и логики.
Объяснить на примере: если у меня есть узлы, определенные как (c: CAT) и (d: DOG), и у каждого узла есть свойство, называемое size, т.е. c.size, d.size и т. Д., То яможет довольно легко запустить какой-нибудь скрипт Cypher для установки отношений между узлами на основе следующего правила
MATCH (c:CAT), (d:DOG) WHERE c.size<d.size
CREATE (c:CAT)-[r:SMALLER_THAN]->(d:DOG)
RETURN c,d
Это замечательно и все работает хорошо.Давайте предположим, что теперь я добавляю новый NODE
CREATE (c:CAT {type:"tiger", size:"4"})
RETURN c
Это не будет иметь никаких ссылок, но я хочу применить ту же логику, т.е.
CREATE (c:CAT)-[r:SMALLER_THAN]->(d:DOG)
Do I
- удалить все ссылки и воссоздать их - то есть применить правило ко всей системе
- запустить ту же команду Cypher, что и «MERGE», а не «CREATE», следовательно, предполагая, что существующие отношения не будут изменены, если в этом нет необходимостисделайте это.
- Найдите узлы, у которых нет ссылок, а затем выполните команду только для них
Я просто хочу обновить ссылки, когда добавляю новые узлы, потому что в то времяЯ знаю, что новый узел не будет иметь ссылок.В качестве альтернативы, если мне нужно изменить размер (: CAT) или (: DOG), ссылка должна обновляться автоматически.
Любой совет приветствуется.