如何按边 属性 分组并在结果中获取顶点+边属性?
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))
问题:
- 如何在结果中从边缘获取连接?
- 如何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')
我是 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))
问题:
- 如何在结果中从边缘获取连接?
- 如何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')