Запрос Cypher: поиск всех путей между двумя узлами, отфильтрованных по свойствам отношений
У меня есть следующий график в качестве базы данных Neo4j:
activates
(80 °F)
(A)------------------------------------->(D)
| \__ _/->^
| \__ activates __/ |
| \__(50 °F) __/ |
| \__ __/ |
| \__ __/ |
activates | \__ __/ |
(50 °F) | \/ | activates
| __/\__ | (50 °F)
| activates __/ \__ |
| (60 °F)__/ \__ |
| __/ \__ |
| __/ \__ |
| __/ \_ |
v / \->|
(B)------------------------------------->(C)
activates
(50 °F)
Каждое отношение имеет свойство, обозначающее требуемую температуру дляактивирует действие.
Мне нужно получитьвсе доступные пути между (A) и (D)ГДЕ температура составляет 50 °F вдоль пути.
Выходные данные должны включать:
A -[:activates{temperature:'50'}]-> B -[:activates{temperature:'50'}]-> C -[:activates{temperature:'50'}]-> D
A -[:activates{temperature:'50'}]-> C -[:activates{temperature:'50'}]-> D
но нет
A -[:activates{temperature:'80'}]-> D
A -[:activates{temperature:'50'}]-> B -[:activates{temperature:'60'}]-> D
Как мне написать требуемый запрос Cypher?
Заранее спасибо.
Изменить 1: Я добавил еще одно диагональное соотношение (B - [: activates {температура: '80'}] -> Г) для большей наглядности
Изменить 2: Мне нужно получитьвсе доступные пути между (A) и (D)ГДЕ температуратот же самый вдоль пути, то есть: A -> B -> C -> D, A -> C -> D, A -> D.