需要使用 gremlin 将 Vertex 分组为 Vertex,该 Vertex 在 Neptune DB 中保存为该 Vertex 的属性

问题描述 投票:0回答:1

我在 Neptune DB 中有两个顶点 Workspace 和 Customer,并且 Workspace 具有 Customer 作为属性。这就像在 RDBMS 的工作区中将外键作为客户。我想按客户的一项财产对工作区进行分组。在 Workspace 中,客户使用 Neptune 提供的唯一 ID 保存,键为客户,值为该实体的唯一 ID。

在下面的查询中,投射客户基本上是工作区顶点的一个属性,其值为客户顶点的唯一 ID,并尝试按客户顶点的属性 firstName 进行分组,最后按计数步骤进行分组。我不确定这是不是这样。请帮我解决这个问题。

g.V().hasLabel('Workspace').has('customer').project('entity').by(values('customer'))

.group().by('entity.firstName').by(count());

gremlin amazon-neptune
1个回答
0
投票

数据模型意义不大。在图中,不需要外键。相反,您通常会在工作区和客户顶点之间有一条边。

(Workspace) <- [usedBy] - (Customer)

其中“usedBy”将是连接两者的边的边类型(或标签)。如果遵循该模式,您可以执行如下查询:

g.V().hasLabel('Workspace').
    group().by(
        in('usedBy').values('entity.firstName'))

然后,如果您想要每个客户的工作空间总数,则可以在末尾添加

count()
这样:

g.V().hasLabel('Workspace').
    group().
        by(in('usedBy').values('entity.firstName')).
        by(count())
© www.soinside.com 2019 - 2024. All rights reserved.