Я собираю набор данных в граф neo4j и написал для него скрипт на python, используя py2neo, через который я выполняю зашифрованные запросы.
Рассмотрим ситуацию, когда у меня есть узел типа "item" со свойствами "type" и "count" и, скажем, у меня есть 5 различных типов элементов.
Мой скрипт перебирает набор данных, и вот что он делает:
- Проверяет, существует ли узел "item" данного типа.
- (a) Если существует, то извлекает его «count», увеличивает его на 1 и обновляет значение свойства
(b) Если не существует, то создайте узел «item» текущего «type» и присвойте ему «count» 1.
Я не использую MERGE до сих пор.
Я знаю, что отдельные шаги 1 и 2 (b) могут быть забиты с помощью MERGE. Это означает, что Cypher проверит шаблон
(n:item{type:"detergent", count:1})
А если его не существует, создаст.
Что я хочу узнать от мастеров шифров здесь, могу ли я использовать MERGE даже для обновления значения свойства?
В частности, если после 10 итераций по набору данных, если количество моющего средства стало равным 4, из процедуры, которую я сейчас использую, могу ли я заменить эту процедуру на использование MERGE, чтобы решить следующую задачу:
1) если моющее средство появляется в итерации, шифр должен создать узел для моющего средства со счетчиком 1, если узел для моющего средства не существует.
2) если моющее средство появляется в итерации, шифр должен увеличить свойство count на 1, если узел для моющего средства уже существует.