ruby 遍历mongo数据


next_played_videos = @channel.videos.active.where(:begin_time.gt => begin_time).asc(:begin_time) 
    next_played_videos.each do |video|
      video.begin_time = begin_time   
      video.end_time = video.begin_time.to_i + video.duration
      begin_time = video.end_time     
      video.save
    end

这里使用 each 操作遍历效率比较低,可以使用 Mongoid 的  inc  方法批量对指定的字段值进行增减,文档见  http://mongoid.org/en/mongoid/docs/persistence.html

next_played_videos = @channel.videos.active.where(:begin_time.gt => begin_time).asc(:begin_time)
next_played_videos.inc(begin_at: [email protected], end_at: [email protected])


你可能感兴趣的:(ruby 遍历mongo数据)