Похоже, PowerUser
- это ярлык в вашей структуре.Вы можете написать обход переменной длины [1], который рассматривает пути любой длины до тех пор, пока эта метка где-то появляется:
MATCH (entity)-[*0..]->(:PowerUser)
Будет самым широким обходом для достижения этого, соответствуялюбой узел, связанный с меткой PowerUser
0 или более ребрами.
Учитывая, что PowerUser
является разрешением, тем не менее, кажется, что более подходящим вариантом было бы рассматривать его как свойство.Поскольку Cypher не содержит схемы, свойства не ограничиваются конкретными метками, поэтому его можно устанавливать и фильтровать на узлах с метками Manager
или User
.Этот подход позволит использовать более краткие выражения, такие как:
MATCH (entity {PowerUser: true})-[]->()
Если это не соответствует вашему варианту использования, не стесняйтесь предоставить более подробную информацию о структуре вашего графа!
- https://oss.redislabs.com/redisgraph/commands/#variable-length-relationships