http://mongoid.org/en/mongoid/docs/querying.html#queries
http://docs.mongodb.org/manual/reference/operator/query-comparison/
gt大于, gte大于等于,lt小于, lte小于等于,inc自增或自减
def increase_or_decrease_position position binding.pry old_position = position.to_i new_position = params[:package][:position].to_i if old_position > new_position @packages = Package.where(:type => params[:package][:type]) .where(:is_actived => true) .where(:position.gte => new_position) .where(:position.lt => old_position).inc(position: 1) elsif new_position > old_position @packages = Package.where(:type => params[:package][:type]) .where(:is_actived => true) .where(:position.lte => new_position) .where(:position.gt => old_position).inc(position: -1) end end
原文:http://www.cnblogs.com/iwangzheng/p/3794599.html