在neo4j密码中找到特定的未知深度的孙子

问题描述

我正在寻找一个根节点,该根节点在未知深度处具有特定的(伟大的?伟大的?伟大的)大子孙,它在最终到达{始终与ListItem与其父级相关。

我都尝试过:

HAS_SELECTED

MATCH (r:Root)-[HAS_SELECTED*]->(l:ListItem {alias: 'test'})
RETURN r

示例图可能是

MATCH (r:Root)-[HAS_SELECTED*]->(l:ListItem)
WHERE l.alias = 'test'
RETURN r

在不知道所有中间关系和节点,甚至不知道有多少中间关系和节点的情况下,我如何找到最终与别名为“ test”的r r r r | | | c ListItem c | | c c | | ListItem(alias = test) ListItem(alias=somethingElse) 相关的r可能有吗?

解决方法

这应该有效:

MATCH (r:Root)-[*0..]->()-[:HAS_SELECTED]->(l:ListItem)
WHERE l.alias = 'test'
RETURN r

variable-length relationship可以使用零下限来表示该关系是可选的。 (当该关系不存在时,模式中它两侧的节点实际上将对应于同一节点。)

(此外,在MATCH模式中,您需要在关系类型名称前加一个冒号。)