Сайты доступа 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 *
Другие вопросы по тегам