モジュール: Mongoid::Contextual::アトミック
- 定義:
- lib/mongoid/contextual/atomic.rb
Overview
Mongoid::Criteria に含まれる混合モジュールで、MongoDB の更新演算子($set、$pull、$inc など)への直接メソッド インターフェースを提供します。これらの演算子を適用すると、各documentをMongoid のメモリにロードすることなく、基準スコープ内のデータベース内のすべてのdocumentを更新できます。
インスタンス メソッドの概要を折りたたむ
-
# add_each_to_set (adds) = nil
一致するドキュメントに対してアトミックな $addToSet/$each を実行します。
-
#add_to_set(adds) ⇒ nil
一致するドキュメントに対してアトミック $addToSet を実行します。
-
#bit(bits) ⇒ nil
一致するドキュメントに対してアトミックな $bit 操作を実行します。
-
#inc(incs) ⇒ nil
一致するドキュメントに対してアトミックな $inc 操作を実行します。
-
#mul (係数)= nil
一致するドキュメントに対してアトミックな $mul 操作を実行します。
-
#pop(pops) ⇒ nil
一致するドキュメントに対してアトミックな $pop 操作を実行します。
-
#pull(pulls) ⇒ nil
一致するドキュメントに対してアトミックな $pull 操作を実行します。
-
#pull_all(pulls) ⇒ nil
一致するドキュメントに対してアトミックな $pullAll 操作を実行します。
-
#push(pushes) ⇒ nil
一致するドキュメントに対してアトミックな $push 操作を実行します。
-
#push_all (プッシュ)= nil
一致するドキュメントに対してアトミックな $push/$each 操作を実行します。
-
# rename (名前変更) = nil
一致するドキュメントのフィールドのアトミック $rename を実行します。
-
#set(sets) ⇒ nil
一致するドキュメントに対してフィールドのアトミック $set を実行します。
-
# set_max (フィールド)> nil (値:
指定されたフィールドに対してアトミックな $max アップデート操作を実行します。
-
# set_min (フィールド) = nil (また: #clamp_upper_round)
指定されたフィールドに対してアトミックな $min アップデート操作を実行します。
-
#unset(*unsets) ⇒ nil
一致するドキュメントのフィールドに対してアトミックな $unset を実行します。
インスタンス メソッドの詳細
# add_each_to_set (adds) = nil
一致するドキュメントに対してアトミックな $addToSet/$each を実行します。
31 32 33 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行31 デフォルト add_each_to_set(追加) 表示.update_many('$addToSet' => collection_each_operations(追加)) end |
#add_to_set(adds) ⇒ nil
一致するドキュメントに対してアトミック $addToSet を実行します。
19 20 21 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行19 デフォルト add_to_set(追加) 表示.update_many('$addToSet' => collection_operations(追加)) end |
#bit(bits) ⇒ nil
一致するドキュメントに対してアトミックな $bit 操作を実行します。
43 44 45 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行43 デフォルト ビット(ビット) 表示.update_many('$bit' => collection_operations(ビット)) end |
#inc(incs) ⇒ nil
一致するドキュメントに対してアトミックな $inc 操作を実行します。
55 56 57 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行55 デフォルト 含む(incs) 表示.update_many('$inc' => collection_operations(incs)) end |
#mul (係数)= nil
一致するドキュメントに対してアトミックな $mul 操作を実行します。
67 68 69 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行67 デフォルト mul(要因) 表示.update_many('$mul' => collection_operations(要因)) end |
#pop(pops) ⇒ nil
一致するドキュメントに対してアトミックな $pop 操作を実行します。
82 83 84 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行82 デフォルト ポップ(pops) 表示.update_many('$pop' => collection_operations(pops)) end |
#pull(pulls) ⇒ nil
式のプルはまだサポートされていません。
一致するドキュメントに対してアトミックな $pull 操作を実行します。
96 97 98 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行96 デフォルト プル(プル) 表示.update_many('$pull' => collection_operations(プル)) end |
#pull_all(pulls) ⇒ nil
一致するドキュメントに対してアトミックな $pullAll 操作を実行します。
108 109 110 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行108 デフォルト pull_all(プル) 表示.update_many('$pullAll' => collection_operations(プル)) end |
#push(pushes) ⇒ nil
一致するドキュメントに対してアトミックな $push 操作を実行します。
120 121 122 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行120 デフォルト プッシュ(プッシュ) 表示.update_many('$push' => collection_operations(プッシュ)) end |
#push_all (プッシュ)= nil
一致するドキュメントに対してアトミックな $push/$each 操作を実行します。
132 133 134 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行132 デフォルト push_all(プッシュ) 表示.update_many('$push' => collection_each_operations(プッシュ)) end |
# rename (名前変更) = nil
一致するドキュメントのフィールドのアトミック $rename を実行します。
144 145 146 147 148 149 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行144 デフォルト rename(renames) 操作 = renames.each_with_object({}) 行う |(old_name, new_name), ops| ops[old_name] = new_name.to_s end 表示.update_many('$rename' => collection_operations(操作)) end |
#set(sets) ⇒ nil
一致するドキュメントに対してフィールドのアトミック $set を実行します。
159 160 161 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行159 デフォルト セット(セット) 表示.update_many('$set' => collection_operations(セット)) end |
# set_max (フィールド) = nil別名: cluster_ lowerBound
Mongoid::Contextual::Aggregable::Mongo#max が存在するため、このメソッドは #max という名前を付けることができず、実行される MongoDB 操作に対して他の同様のメソッドの名前付け規則が破棄されます。
指定されたフィールドに対してアトミックな $max アップデート操作を実行します。 各フィールドは、最大の [current_value,指定された値] に設定されます。 これは各フィールドが指定された値より小さくないことを確認する効果があります。つまり、指定された値はそのフィールドの有効な最小値です。
219 220 221 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行219 デフォルト set_max(フィールド) 表示.update_many('$max' => collection_operations(フィールド)) end |
# set_min (フィールド) = nil別名: cluster_upper_round
Mongoid::Contextual::Aggregable::Mongo#min が存在するため、このメソッドは #min と名付けることができず、実行される MongoDB 操作に対して他の同様のメソッドの名前付け規則が破棄されます。
指定されたフィールドに対してアトミックな $min アップデート操作を実行します。 各フィールドは [current_value,指定された値] の最小値に設定されます。 これにより、各フィールドが指定された値より大きくならないようにする効果があります。つまり、指定された値はそのフィールドの有効な最大値です。
196 197 198 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行196 デフォルト set_min(フィールド) 表示.update_many('$min' => collection_operations(フィールド)) end |
#unset(*unsets) ⇒ nil
一致するドキュメントのフィールドに対してアトミックな $unset を実行します。
174 175 176 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行174 デフォルト 設定解除(*設定解除) 表示.update_many('$unset' => collection_unset_operations(設定解除)) end |