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