如何按边 属性 分组并在结果中获取顶点+边属性?

How to group by edge property and get vertex+edge properties in the result?

我是 gremlin 的新手,这就是我想要做的..

我有一个 'product' 顶点和一个 'user' 顶点。我有一个产品 -> 'linkedto' -> 用户边。这个边有 2 个属性 'type' 和 'joinedon'。我正在尝试获取链接到按边缘的 'type' 属性 分组的产品的用户列表。输出应该是这样的:

类型:[

{name, email..., joinedon}, // user1 详细信息 + joinedon(来自边缘)

{name, email..., joinedon}, // user2 详细信息 + joinedon(来自边缘)

]

我已经到了可以通过此查询对用户及其详细信息进行分组的地步


g.V(productid).outE('linkedto').as('a')
  .inV().as('b').group().by(select('a').values('type')).unfold()
  .project('type','user').by(select(keys)).by(select(values))

问题:

  1. 如何在结果中从边缘获取连接?
  2. 如何select在结果中仅包含来自边和顶点(用户)的特定字段?

我会先做投影,再做分组。

g.V(1).outE('linkedto').
  project('type', 'name', 'email', 'joinedon').
    by(values('type')).
    by(inV().values('name')).
    by(inV().values('email')).
    by(values('joinedon')).
  group().
    by('type')