mongoid

 

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 

 

 

 

 

转载于:https://www.cnblogs.com/iwangzheng/p/3794599.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值