Используя MongoDB и драйвер Ruby, я пытаюсь рассчитать рейтинг игроков в моем приложении, поэтому сортирую (в данном случае) отжимания, а затем добавляю поле ранга и значение для объекта.*
pushups = coll.find.sort(["pushups", -1] )
pushups.each_with_index do |r, idx|
r[:pushups_rank] = idx + 1
coll.update( {:id => r }, r, :upsert => true)
coll.save(r)
end
Этот подход работает, но разве это лучший способ перебирать объекты и обновлять каждый?Есть ли лучший способ рассчитать рейтинг игрока?