Consulta Cypher: Localizando todos os caminhos entre dois nós filtrados por propriedades de relacionamento
Eu tenho o seguinte gráfico como um banco de dados gráfico Neo4j:
activates
(80 °F)
(A)------------------------------------->(D)
| \__ _/->^
| \__ activates __/ |
| \__(50 °F) __/ |
| \__ __/ |
| \__ __/ |
activates | \__ __/ |
(50 °F) | \/ | activates
| __/\__ | (50 °F)
| activates __/ \__ |
| (60 °F)__/ \__ |
| __/ \__ |
| __/ \__ |
| __/ \_ |
v / \->|
(B)------------------------------------->(C)
activates
(50 °F)
Cada relacionamento tem uma propriedade indicando a temperatura necessária para a ação 'ativa'.
Eu preciso recuperartodos os caminhos disponíveis entre (A) e (D)ONDE a temperatura é de 50 ° F ao longo do caminho.
A saída deve incluir:
A -[:activates{temperature:'50'}]-> B -[:activates{temperature:'50'}]-> C -[:activates{temperature:'50'}]-> D
A -[:activates{temperature:'50'}]-> C -[:activates{temperature:'50'}]-> D
mas não
A -[:activates{temperature:'80'}]-> D
A -[:activates{temperature:'50'}]-> B -[:activates{temperature:'60'}]-> D
Como escrevo a consulta Cypher necessária?
Desde já, obrigado.
Editar 1: Eu adicionei outro relacionamento diagonal (B - [: ativa {temperature: '80 '}] -> D) para mais clareza.
Editar 2: Eu preciso recuperartodos os caminhos disponíveis entre (A) e (D)ONDE a temperatura éo mesmo ao longo do caminho, i.e.: A -> B -> C -> D, A -> C -> D, A -> D.