У меня есть 3 узла со следующими свойствами и отношениями:
LocationNode : location,
PersonNode : fullName,
CityNode: cityName
LocationNode<-[has_location]-(PersonNode)
PersonNode-[has_city]->(CityNode)
LocationNode - это старый узел, который необходимо удалить. Данные LocationNode должны быть перемещены в новый узел CityNode. Для всех PersonNode, имеющих отношение к LocationNode, мне нужно удалить это отношение и создать новое отношение с CityNode, где LocationNode.location = CityNode.cityName
ПРИМЕЧАНИЕ: CityNodes уже созданы в базе данных, нет необходимости создавать новый.
Я попробовал следующий запрос:
match (n:LocationNode)<-[r:has_location]-(j:PersonNode) delete r with n,j
merge (j)-[r2:has_city]->(h1:CityNode) where n.location = h1.cityName return j
Ошибка, которую я получил, состояла в том, что я не могу использовать условие WHERE при использовании MERGE.
Кто-нибудь может сказать мне правильный запрос, который я могу использовать?