Сайты доступа Cypher с переменной длиной пути
У меня есть следующая проблема:
у меня есть MATCH
пункт, как этот:
MACTH (A)-[*1..]->(B)
Теперь, если этот шаблон соответствует, мне нужно как-то продублировать -[*1..]->
разделяйте и заменяйте все узлы в нем, чтобы иметь определенный тип с узлами другого типа.
например, если бы у меня был этот график:
(X1:A)-[:r]->(X2:B)-[:r]->(X3:E)-[:r]->(X4:A)
Я мог бы хотеть получить этот график после применения правила MACTH (A:A)-[*1..]->(B:A) something something
(X1:A)-[:r]->(X2:B)-[:r]->(X3:E)-[:r]->(X4:A) , (X1)-[:r]->(X5:C)-[:r]->(X3)-[:r]->(X4)
дублируя путь между (A)
а также (B)
и замена всех узлов типа B
с типом C
Но как я могу получить доступ к -[*1..]->
часть запроса?
1 ответ
Попробуй это
Match (p:Person)-[:RELATED*1..]->(e)
with collect(distinct(id(e))) as ids Match (c:Country) where id(c) in ids
remove c:Country set c:NewLabel
return *
на данных
Create (p:Person)-[:RELATED]->(b:Person)-[:RELATED]->(c:Client)-[:RELATED]->(e:Country) return *