如何用Gremlin获取指定层级深度的特定标签子节点?
解决方案
针对你需要从A节点出发获取恰好2层深度的E标签节点的需求,有两种直观的Gremlin写法:
写法一:贴合层级标签规则(精准匹配)
如果明确第一层只能是B/C节点,第二层从B/C出发找E节点,可以直接分步遍历:
g.V('A') .out().hasLabel('B','C') .out().hasLabel('E')
写法二:通用深度控制(适配多层级统一规则)
如果后续层级(比如3层及以上)的允许标签也是D/E,需要用repeat+times控制遍历深度,再筛选目标标签:
g.V('A') .repeat(out().hasLabel('B','C','D','E')) .times(2) .hasLabel('E')
关键说明:
times(2)确保遍历恰好执行2次out(),也就是从A节点出发走2步,对应深度为2的节点,不会包含3层及以上的节点- 最后通过
hasLabel('E')筛选出目标节点
内容的提问来源于stack exchange,提问作者wrahman
相关产品推荐
相关产品推荐

