如何根据 Neo4j 中的节点值过滤组件

How to filter components in according to nodes values in Neo4j

我在 Neo4j 中创建了我的网络,特别是,它由许多“链”组成(每个节点最多可以有一个入边和最多一个出边)。我如何进行查询才能 return 所有那些仅由值在 范围内的节点组成的链? (你可以认为每个节点都有标识符|日期|值)

example: >7
3-->10-->9-->4 IGNORED
8-->10-->9-->12 TAKEN

ps: 我试过用gds之类的库,好像很有用,但还是想不通

谢谢

我会尝试以下方法:

MATCH p= (n)-[*]->(m)
WHERE NOT (n)<--() AND NOT (m)-->()
WITH p
WHERE all(node in nodes(p) WHERE x < node.value y)
RETURN p

首先,过滤从头到尾的所有路径,然后对路径中的所有节点应用范围过滤器。

编辑:根据评论,还可以考虑由一个节点组成的链:

MATCH p= (n)-[*0..]->(m)
WHERE NOT (n)<--() AND NOT (m)-->()
WITH p
WHERE all(node in nodes(p) WHERE x < node.value y)
RETURN p