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

如何用Gremlin实现顶点双属性组合计数的二维表展示?

问题描述

我拥有一组顶点,每个顶点包含name和job title两个属性。我希望统计这两个属性的所有组合的数量,并将结果以二维表形式呈现,示例如下:

ProgrammerDriver
John356
Peter08

请问能否通过Gremlin实现该需求?我尝试使用groupCount(),但不知如何让它适配两个属性。

实现方案

可以通过Gremlin的嵌套分组逻辑实现该需求,具体步骤如下:

  1. 基础双层分组统计
    先按name做外层分组,再在每个name分组内按job title执行groupCount,即可得到每个姓名对应不同职位的数量:

    g.V().group().by('name').by(groupCount().by('job title'))
    

    执行后会返回嵌套Map结构的结果,示例如下:

    {
      "John": {"Programmer": 3, "Driver": 56},
      "Peter": {"Driver": 8}
    }
    
  2. 补全缺失职位的0值
    如果需要像示例表格一样,显示所有存在的职位(包括对应姓名下数量为0的职位),可以先收集所有唯一的职位列表,再遍历统计结果补全缺失值:

    // 先获取所有不重复的职位
    def allJobs = g.V().values('job title').dedup().toList()
    // 执行分组并补全0值
    g.V().group().by('name').by(
      groupCount().by('job title').map{
        allJobs.each{ job -> it.putIfAbsent(job, 0) }; it
      }
    )
    

    这样就能得到每个姓名对应所有职位的完整数量,包括数值为0的情况。

  3. 转换为二维表展示
    Gremlin返回的是嵌套Map结构,你可以在客户端将该结果转换为二维表格式:提取所有姓名作为行标题,所有职位作为列标题,然后将Map中的对应数值填充到表格单元格中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:12:15