查询每个连接顶点的边数

时间:2019-07-26 10:12:59

标签: gremlin

我有一个包含多个订单及其各自购买(称为产品)的数据集。订单链接到他们购买的产品。对于给定的产品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的订单,第二个查询仅返回“链接”产品。我无法获得每个“链接”产品的出现次数。有人有建议吗?预先感谢...

1 个答案:

答案 0 :(得分:0)

这是经典的推荐查询。基本上,您只缺少最后一步:

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()