モジュール: Mongoid::Persistable::Pushable
- 次による拡張機能。
- ActiveSupport::Concern
- 次のドキュメントに含まれます。
- Mongoid::Persistable
- 定義:
- lib/mongoid/persistable/pushable.rb
Overview
$push および $addToSet 操作の動作を定義します。
インスタンス メソッドの概要を折りたたむ
-
# add_to_set (追加) = ドキュメント
値がまだ配列内に存在しない場合にのみ、配列に単一の値を追加します。
-
#push (プッシュ) = ドキュメント
配列に単一の値または複数の値をプッシュします。
インスタンス メソッドの詳細
# add_to_set (追加) =ドキュメント
値がまだ配列内に存在しない場合にのみ、配列に単一の値を追加します。
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# ファイル 'lib/mongoid/永続的/pushable.rb' 行18 デフォルト add_to_set(追加) 準備_アトミック_操作 行う |ops| Process_アトミック_操作(追加) 行う |フィールド, 価値| exist = 送信(フィールド) || 属性[フィールド] 場合 exist.nil? 属性[フィールド] = [] # 属性から値を読み取ります。 https://JIRA.mongodb.org/browse/MONGOID-{0 4874 exist = 属性[フィールド] end values = [ 価値 ].平面(1) values.各 行う |価値| exist.プッシュ(価値) ただし、 exist.include?(価値) end ops[アトミック_attribute_name(フィールド)] = { ' $each ' => values } end { '$addToSet' => ops } end end |
#push (プッシュ) =ドキュメント
配列に単一の値または複数の値をプッシュします。
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# ファイル 'lib/mongoid/永続的/pushable.rb' 行49 デフォルト プッシュ(プッシュ) 準備_アトミック_操作 行う |ops| Process_アトミック_操作(プッシュ) 行う |フィールド, 価値| exist = 送信(フィールド) || begin 属性[フィールド] ||= [] 属性[フィールド] end values = [ 価値 ].平面(1) values.各 { |価値| exist.プッシュ(価値) } ops[アトミック_attribute_name(フィールド)] = { ' $each ' => values } end { '$push' => ops } end end |