模块:Mongoid::Contextual::Atomic
- 定义于:
- lib/mongoid/contextual/atomic.rb
Overview
Mongoid::Criteria 中包含的 Mixin 模块为 MongoDB 的更新操作符($ 设立、$pull、$inc 等)提供了直接方法接口 这些操作符可用于更新数据库中条件范围内的所有文档,而无需将每个文档加载到 Mongoid 的内存中。
实例方法摘要折叠
-
# add_each_to_set (adds) ⇒ nil
对匹配文档执行原子 $addToSet/$each。
-
#add_to_set(adds) ⇒ nil
对匹配文档执行原子 $addToSet。
-
#位(bits) ⇒ nil
对匹配文档执行原子 $bit 操作。
-
#inc(incs) ⇒ nil
对匹配文档执行原子 $inc 操作。
-
# mul (factors) ⇒ nil
对匹配文档执行原子 $mul 操作。
-
#pop(pops) ⇒ nil
对匹配文档执行原子 $pop 操作。
-
# pull (pulls) ⇒ nil
对匹配文档执行原子 $pull 操作。
-
# pull_all (pulls) ⇒ nil
对匹配文档执行原子 $pullAll 操作。
-
#push(pushes) ⇒ nil
对匹配文档执行原子 $push 操作。
-
# push_all (push) ⇒ nil
对匹配文档执行原子 $push/$each 操作。
-
# rename (renames) ⇒ nil
对匹配文档上的字段执行原子 $rename。
-
#set(sets) ⇒ nil
对匹配文档执行字段的原子 $set。
-
# set_max (fields) ⇒ nil (也:#clamp_lower_bound)
对给定一个或多个字段执行原子 $max更新操作。
-
# set_min (fields) ⇒ nil (也:#clamp_upper_bound)
对给定的一个或多个字段执行原子 $min更新操作。
-
#unset(*unsets) ⇒ nil
对匹配文档上的字段执行原子 $unset。
实例方法详细信息
# add_each_to_set (adds) ⇒ nil
对匹配文档执行原子 $addToSet/$each。
34 35 36 |
# File 'lib/mongoid/contextual/atomic.rb', line 34 def add_each_to_set(增加) 查看.update_many("$addToSet" => collect_each_operations(增加)) end |
#add_to_set(adds) ⇒ nil
对匹配文档执行原子 $addToSet。
22 23 24 |
# File 'lib/mongoid/contextual/atomic.rb', line 22 def add_to_set(增加) 查看.update_many("$addToSet" => collect_operations(增加)) end |
#bit(bits) ⇒ nil
对匹配文档执行原子 $bit 操作。
46 47 48 |
# File 'lib/mongoid/contextual/atomic.rb', line 46 def Bit(位) 查看.update_many(" $bit " => collect_operations(位)) end |
#inc(incs) ⇒ nil
对匹配文档执行原子 $inc 操作。
58 59 60 |
# File 'lib/mongoid/contextual/atomic.rb', line 58 def inc(incs) 查看.update_many(" $inc " => collect_operations(incs)) end |
# mul (factors) ⇒ nil
对匹配文档执行原子 $mul 操作。
70 71 72 |
# File 'lib/mongoid/contextual/atomic.rb', line 70 def mul(因素) 查看.update_many("$mul" => collect_operations(因素)) end |
# Pop (pops) ⇒ nil
对匹配文档执行原子 $pop 操作。
85 86 87 |
# File 'lib/mongoid/contextual/atomic.rb', line 85 def Pop(持久性有机污染物) 查看.update_many(" $pop " => collect_operations(持久性有机污染物)) end |
# pull (pulls) ⇒ nil
尚不支持表达式拉取。
对匹配文档执行原子 $pull 操作。
99 100 101 |
# File 'lib/mongoid/contextual/atomic.rb', line 99 def pull(pull) 查看.update_many(" $pull " => collect_operations(pull)) end |
#pull_all(pulls) ⇒ nil
对匹配文档执行原子 $pullAll 操作。
111 112 113 |
# File 'lib/mongoid/contextual/atomic.rb', line 111 def pull_all(pull) 查看.update_many(" $pullAll " => collect_operations(pull)) end |
# push (push) ⇒ nil
对匹配文档执行原子 $push 操作。
123 124 125 |
# File 'lib/mongoid/contextual/atomic.rb', line 123 def 推动(推送) 查看.update_many(" $push " => collect_operations(推送)) end |
# push_all (push) ⇒ nil
对匹配文档执行原子 $push/$each 操作。
135 136 137 |
# File 'lib/mongoid/contextual/atomic.rb', line 135 def push_all(推送) 查看.update_many(" $push " => collect_each_operations(推送)) end |
# rename (renames) ⇒ nil
对匹配文档上的字段执行原子 $rename。
147 148 149 150 151 152 153 |
# File 'lib/mongoid/contextual/atomic.rb', line 147 def 改名(renames) 操作 = renames.注入({}) do |运维, (old_name, new_name)| 运维[old_name] = new_name.to_s 运维 end 查看.update_many(" $rename " => collect_operations(操作)) end |
# set (sets) ⇒ nil
对匹配文档执行字段的原子 $set。
163 164 165 |
# File 'lib/mongoid/contextual/atomic.rb', line 163 def 集(集) 查看.update_many(" $set " => collect_operations(集)) end |
# set_max (fields) ⇒ nil也称为: clip_lower_bound
由于 Mongoid::Contextual::Aggregable::Mongo#max 的存在,该方法不能命名为 #max,从而打破了其他类似方法根据其执行的MongoDB操作来命名的惯例。
对给定一个或多个字段执行原子 $max更新操作。 每个字段将被设立为 [current_value,给定值] 中的最大值。 其作用是确保每个字段不小于给定值;换言之,给定值是该字段的有效最小值。
223 224 225 |
# File 'lib/mongoid/contextual/atomic.rb', line 223 def set_max(字段) 查看.update_many(" $max " => collect_operations(字段)) end |
# set_min (fields) ⇒ nil也称为: clip_upper_bound
由于 Mongoid::Contextual::Aggregable::Mongo#min 的存在,该方法不能命名为 #min,从而打破了其他类似方法根据其执行的MongoDB操作来命名的惯例。
对给定的一个或多个字段执行原子 $min更新操作。 每个字段都将设立为 [current_value,给定值] 中的最小值。 其作用是确保每个字段不大于给定值;换言之,给定值是该字段的有效最大值。
200 201 202 |
# File 'lib/mongoid/contextual/atomic.rb', line 200 def set_min(字段) 查看.update_many("$min" => collect_operations(字段)) end |
#unset(*unsets) ⇒ nil
对匹配文档上的字段执行原子 $unset。
178 179 180 |
# File 'lib/mongoid/contextual/atomic.rb', line 178 def 未设置(*取消设置) 查看.update_many('$unset' => collect_unset_operations(取消设置)) end |