如何根据 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
我在 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