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

Gremlin技术问题:如何区分获取顶点列表的出入边

你可以用Gremlin的group()或者project()步骤来解决这个问题,把每个顶点对应的边单独归类,这样就能清楚区分每条边所属的顶点了:

方法一:用group()生成顶点ID到边列表的映射

直接对目标顶点分组,以顶点ID为键,对应的符合条件的边为值:

g.V('2896897c-7346-47c0-b3be-ab808a7ca367', '89ed1880-1351-4de0-9c6f-b41c78a770d3')
  .group()
    .by(id())
    .by(bothE('relation1','relation2').has('isActive', true).fold())

查询返回的结构类似{顶点ID1: [边1, 边2], 顶点ID2: [边3, 边4]},能直接对应每个顶点的关联边。

方法二:用project()生成结构化的顶点-边集合

如果想要更清晰的字段命名,用project()定义返回结构,每个结果包含明确的顶点ID和边列表字段:

g.V('2896897c-7346-47c0-b3be-ab808a7ca367', '89ed1880-1351-4de0-9c6f-b41c78a770d3')
  .project('vertexId', 'relatedEdges')
    .by(id())
    .by(bothE('relation1','relation2').has('isActive', true).fold())

返回结果会是结构化的列表:

[
  {"vertexId": "2896897c-7346-47c0-b3be-ab808a7ca367", "relatedEdges": [边对象...]},
  {"vertexId": "89ed1880-1351-4de0-9c6f-b41c78a770d3", "relatedEdges": [边对象...]}
]

两种方法里的fold()步骤负责把当前顶点的所有符合条件的边收集成一个列表,避免边被单独展开导致归属混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:17:08