如何在后端更新10位获奖者?

问题描述

我有一个用例,我必须在100名参与者中产生10名获奖者,并用janusgraph更新它们。我使用math.ceil(math.random())方法生成了获胜者,并将其ID保留在一个数组中(例如,winners [10])。这个获胜者[10]数组将作为正文和游戏发送给我作为查询前端的参数。这是一个后期终点。我只需要向获奖者添加500点并检索他们的数据。 所以我尝试过的是

g.V().hasLabel('Game').has('active',true).
    as('game').
  outE('participated').inV().hasLabel('User').
  has('userdId',id).as('winner').
  addE('won').property('points',500).
  to('game').
    select('winner').
  valueMap()

以上查询仅对一个用户执行。我想让我的查询对所有用户有效。我已经对repeat(),loop(),iterate()步骤进行了一些研究,但是没有选择余地。结果应该是包含10个获胜者数据的数组。

谢谢!

解决方法

您可以使用within通过多个ID过滤顶点:

g.V().hasLabel('Game').has('active',true).
    as('game').
  outE('participated').inV().hasLabel('User').
  has('userdId',within(1,2,3)).as('winner').
  addE('won').property('points',500).
  to('game').
    select('winner').
  valueMap()

示例:https://gremlify.com/9j071eajda4