У меня есть следующая графовая модель для представления микросервисной архитектуры
(: Team {space}) - [: OPEX] -> (: Service) - [: USES] -> [: Service]
- Команда принадлежит к пробелу (отделу)
- Команда имеет право собственности на операцию (= OPEX) для нескольких Сервисов
- Сервисы имеют отношения USES между ними
Мой запрос на естественном языке:
- найти все команды в определенном пространстве, и через отношения OPEX найти все их услуги
- также включить все ИСПОЛЬЗОВАНИЯотношения между этими службами в результате
У меня проблемы с выражением этого запроса в элегантном запросе Cypher.Я придумал следующее, но должен быть более простой и естественный способ выразить это.
MATCH (t1:Team {space:"shopping"})-[o1:OPEX]->(s1:Service),
(t2:Team {space:"shopping"})-[o2:OPEX]->(s2:Service),
(s3:Service)-[u:USES]->(s4:Service)
WHERE s3.name=s1.name AND s4.name=s2.name
RETURN t1, o1, s1, u, s2, o2, t2
Может ли кто-нибудь указать мне лучшее направление?