Gremlin 查询每个连接顶点的边数

Gremlin 查询每个连接顶点的边数,gremlin,Gremlin,我有一个数据集,其中包含几个订单及其各自的购买(称为产品)。订单链接到他们购买的产品。对于给定的产品P1,我希望获得所有“链接”产品(即与P1以相同订单购买的产品)的列表,以及出现次数(即购买这些“链接”产品的订单数量) 在gremlin中,我已经构建了一个图表,将所有订单连接到它们各自的购买。我正在使用Cosmos DB,以防这很重要。我能够查询购买P1的所有订单: g.V().hasLabel('PRODUCT').has('id', '2').in('purchased') 我还可以查询

我有一个数据集,其中包含几个订单及其各自的购买(称为产品)。订单链接到他们购买的产品。对于给定的产品P1,我希望获得所有“链接”产品(即与P1以相同订单购买的产品)的列表,以及出现次数(即购买这些“链接”产品的订单数量)

在gremlin中,我已经构建了一个图表,将所有订单连接到它们各自的购买。我正在使用Cosmos DB,以防这很重要。我能够查询购买P1的所有订单:

g.V().hasLabel('PRODUCT').has('id', '2').in('purchased')
我还可以查询所有链接的产品:

g.V().hasLabel('PRODUCT').has('id','2').in('purchased').out('purchased')

但是,第一个查询只返回购买P1的订单,第二个查询只返回“链接”的产品。我无法获得每个“链接”产品的出现次数。有人有什么建议吗?提前感谢…

这是一个经典的推荐查询。基本上,您只错过了最后一步:

g.V().has('PRODUCT','id','2').
  in('purchased').
  out('purchased').
  groupCount()
但是,您可能不希望在结果中包含初始产品:

g.V().has('PRODUCT','id','2').as('a').
  in('purchased').
  out('purchased').
    where(neq('a')).
  groupCount()