You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Gremlin单次查询获取指定节点的所有出入向关联节点

合并查询方案

你完全可以将两次查询合并为单次执行,Gremlin原生提供了邻接节点遍历的快捷步骤,写法更简洁的同时还能减少遍历开销,比分开两次执行效率高很多。

最简写法

直接用both()一步获取所有入向+出向关联节点,等价于你原来两次查询结果的并集:

g.V().has('primaryName', 'NAME_OF_NODE').both().values('primaryName')

注:你原来的写法也可以进一步简化,出向关联可以直接用out()替代inE().outV(),入向关联可以直接用in()替代outE().inV(),both()本质就是in()和out()结果的合并。

如果你后续需要基于边的属性做过滤(比如只查特定类型的关联边),可以用bothE() + otherV()的写法,效果和上面等价,还能附加边的过滤条件:

// 示例:过滤关联边类型为"合作"的所有关联节点
g.V().has('primaryName', 'NAME_OF_NODE').bothE('合作').otherV().values('primaryName')

常用扩展用法

  • 如果需要对重复的关联节点去重,可以在取属性前加dedup()步骤:
    g.V().has('primaryName', 'NAME_OF_NODE').both().dedup().values('primaryName')
    
  • 如果需要区分每个关联节点的方向(入向/出向),可以用project()步骤同时返回方向和节点名称:
    g.V().has('primaryName', 'NAME_OF_NODE').bothE()
      .project('关联方向', '节点名称')
      .by(T.direction)
      .by(otherV().values('primaryName'))
    

内容的提问来源于stack exchange,提问作者Karan Agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 02:12:00