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

Gremlin遍历如何按深度优先顺序返回关联指定product的节点

你的需求是实现按id升序的深度优先遍历,同时收集所有关联id=13商品的person节点,原有查询没有指定子节点排序规则,所以输出顺序不符合预期。

正确的Gremlin查询语句

g.V(2).
  repeat(out('related').order().by(id).simplePath()).
    emit(out('chose').hasId(13)).
  dedup()

语句说明

  • 从指定起点V(2)开始遍历,避免全图扫描
  • 每次扩展子节点时,先通过order().by(id)按节点id升序排序,保证每层子节点的处理顺序符合要求
  • 用emit()筛选所有存在指向id=13的chose边的person节点,遍历过程中符合条件的节点会按遍历顺序输出
  • simplePath()避免出现环路,dedup()防止同一节点被多条路径命中重复输出

输出结果

执行上述语句后返回顺序完全符合预期:

==>v[1]
==>v[8]
==>v[9]
==>v[3]
==>v[11]
==>v[12]

如果只需要返回节点id,在语句末尾加上.id()即可,返回结果为:

==>1
==>8
==>9
==>3
==>11
==>12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:45:05