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自增或自减
--------------------
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
相关文章推荐
- 【Go语言】集合与文件操作
- google支付接口被刷以及解决方案
- Go语言 变量和输入输出
- 世界各国Google网址大全
- POJ 1179 Polygon(动态规划:类似环形石子合并)
- OK6410.logo显示.16BPP
- Go 语言简介
- objc category的秘密
- django - 替换admin的textarea为 富文本
- objc category的秘密
- django multidb --- router
- django orm 批量存储数据
- GregorianCalendar类的add和roll方法
- Google打不开的解决方法
- goodAddr
- 解决Windows To Go常见的三大挑战
- spagobi4.2安装部署,报错日志 表或视图不存在
- spagobi系列文章-01 环境部署及部分汉化
- hdu3911 区间线段树
- POJ 3274 Gold Balanced Lineup 哈希,查重 难度:3