Neo4j与可变长度路径上的属性匹配

时间:2018-03-01 20:09:42

标签: neo4j cypher

我查看了开发人员手册,您可以使用可变长度的属性进行过滤,其关系如下面的cypher。

MATCH p =(charlie:Person)-[* { blocked:false }]-(martin:Person)
WHERE charlie.name = 'Charlie Sheen' AND martin.name = 'Martin Sheen'
RETURN p

我在这里看到的是我可以通过关于可变长度关系的数字属性的某些逻辑来过滤。

例如,将查询中的{blocked:false}更改为{amount_paid}等数字属性,然后按amount_paid > 20过滤。

所以我可以通过与amount_paid > 20的关系跳到Person。

1 个答案:

答案 0 :(得分:1)

您可以使用谓词ALL

MATCH p=(charlie:Person {name: 'Charlie Sheen')-[*]-(martin:Person {name: 'Martin Sheen')
WHERE ALL(rel in relationships(p) WHERE rel.amount_paind > 20)
RETURN p