类:Mongoid::Atomic::Modifiers
- 继承:
-
哈希
- 对象
- 哈希
- Mongoid::Atomic::Modifiers
- 定义于:
- lib/mongoid/atomic/modifiers.rb
Overview
此类包含支持对数据库进行原子操作的逻辑。
实例方法摘要折叠
-
# add_to_set (modifications) ⇒ 对象
将原子 $addToSet 修饰符添加到哈希中。
-
# pull (modifications) ⇒ 对象
将拉取所有修饰符添加到修饰符哈希中。
-
# pull_all (modifications) ⇒ 对象
将拉取所有修饰符添加到修饰符哈希中。
-
# push (modifications) ⇒ 对象
将推送修改器添加到修改器哈希中。
-
# set (modifications) ⇒ 对象
将 set 操作添加到修饰符哈希中。
-
# unset (modifications) ⇒ 对象
将未设置的操作添加到修饰符哈希中。
实例方法详细信息
# add_to_set (modifications) ⇒对象
将原子 $addToSet 修饰符添加到哈希中。
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/mongoid/atomic/modifiers.rb', line 14 def add_to_set(修改) 修改.each_pair do |字段, 值| if add_to_sets.has_key?(字段) 值.每 do |val| add_to_sets[字段][' $each '].推动(val) end else add_to_sets[字段] = { ' $each ' => 值 } end end end |
# pull (modifications) ⇒对象
将拉取所有修饰符添加到修饰符哈希中。
45 46 47 48 49 50 |
# File 'lib/mongoid/atomic/modifiers.rb', line 45 def pull(修改) 修改.each_pair do |字段, 值| pull[字段] = 值 pull_fields[字段.拆分(' 。 ', 2)[0]] = 字段 end end |
# pull_all (modifications) ⇒对象
将拉取所有修饰符添加到修饰符哈希中。
32 33 34 35 36 37 |
# File 'lib/mongoid/atomic/modifiers.rb', line 32 def pull_all(修改) 修改.each_pair do |字段, 值| add_operation(pull_alls, 字段, 值) pull_fields[字段.拆分(' 。 ', 2)[0]] = 字段 end end |
# push (modifications) ⇒对象
将推送修改器添加到修改器哈希中。
58 59 60 61 62 63 64 |
# File 'lib/mongoid/atomic/modifiers.rb', line 58 def 推动(修改) 修改.each_pair do |字段, 值| push_fields[字段] = 字段 mods = push_conflict?(字段) ? 冲突的推送 : 推送 add_operation(mods, 字段, { ' $each ' => 阵列.换行(值) }) end end |
# set (modifications) ⇒对象
将 set 操作添加到修饰符哈希中。
72 73 74 75 76 77 78 79 80 |
# File 'lib/mongoid/atomic/modifiers.rb', line 72 def 集(修改) 修改.each_pair do |字段, 值| 来年 if 字段 == '_id' mods = set_conflict?(字段) ? 冲突集 : 集 add_operation(mods, 字段, 值) set_fields[字段.拆分(' 。 ', 2)[0]] = 字段 end end |
# unset (modifications) ⇒对象
将未设置的操作添加到修饰符哈希中。
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mongoid/atomic/modifiers.rb', line 88 def 未设置(修改) 修改.每 do |字段| 字段 = 字段.to_s if unset_conflict?(字段) # 如果冲突的 $设立覆盖了整个父字段(而不仅仅是 # sub-path),它会写入完整的当前状态,该状态已经 # 反映此未设置。跳过 $unset — 它是多余的。 来年 if unset_superseded_by_set?(字段) 冲突取消集.update(字段 => true) else 取消设置.update(字段 => true) end end end |