您的位置:首页 > 编程语言 > Go语言

mongoid

2014-06-18 14:46 92 查看
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


--------------------

def adjust_same_type_actived_packages_position(old_position)
return if position == old_position

if position < old_position
Package.actived.not_in(_id: [id]).    //由于这是model里的实例方法,[id]就是实例的id
where(:type => type,
:position.gte => position,
:position.lt => old_position).inc(position: 1)
else
Package.actived.not_in(_id: [id]).
where(:type => type,
:position.lte => position,
:position.gt => old_position).inc(position: -1)
end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: