У меня есть следующий график в виде базы данных 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 - [: активирует {температура: '80 '}] → D) для большей ясности.
Изменить 2: Мне нужно получить все доступные пути между (A) и (D) ГДЕ, то же самое происходит по пути, то есть: A → B → C → D, A → C → D, A → D.