在neo4j中,我有像这样形成链的节点:
(b)-->(a)-->(b)-->(a)-->(b)-->(b)-->(b)-->(b)-->(a)-->(a)-->(b)-->(b)
我对只包含(b)s的短子链感兴趣,更具体地说,我想检索属于子链的所有(b)s,其中子链的长度小于4(或其他一些整数)。(B)不应返回属于较长子链一部分的s。长度可以是1。因此,在这种情况下,查询应该返回除中间连续的4个之外的所有(B)。我该如何表达对此的查询呢?
发布于 2019-10-03 02:23:31
已更新
假设所有"b“节点都有B
标签,这应该是可行的:
MATCH p=(x:B)-[*0..2]->(y:B)
WHERE ALL(n IN NODES(p)[1..-1] WHERE n:B) AND NOT (:B)-->(x) AND NOT (y)-->(:B)
RETURN p
由1到3个B
节点组成的链将由0到2个关系联接,因此使用[*0..2]
模式。
https://stackoverflow.com/questions/58205097
复制相似问题