クラス: Mongoid::関連付け::埋め込み::埋め込みMany::Proxy
- 次のことが含まれます。
- バッチ可能
- 定義:
- build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb
インスタンス属性の概要
プロキシから継承された属性
#_association, #_base, #_target
クラスメソッドの概要を折りたたむ
-
。埋め込み= true
関連付けが埋め込みである場合は true を返します。
-
。 foreign_key_supfix = nil
外部キー フィールドのサフィックス(_id)または "_ids" を返します。
インスタンス メソッドの概要を折りたたむ
-
#オブジェクト(また: #push)
ドキュメントまたはドキュメントの配列を関連付けに追加します。
-
_remove (#document) = オブジェクト
private
コレクション*メモリ内: から 1 つのドキュメントを削除します。
-
# as_document = 配列<Hash>
この関連付けを、データベース内のその表現として取得します。
-
ビルド番号のビルド(属性 = {}、タイプ = nil) {|doc| ... } = ドキュメント(#new)
関連付け内に新しいドキュメントを構築し、それをターゲットに追加します。
-
#クリア= 自己
関連付けをクリアします。
-
#concat(docs) ⇒ Array<Document>
ドキュメントの配列を関連付けに追加します。
-
#count(*args, &block) ⇒ Integer
データベースに実際に保存された、関連付け内のドキュメントの数を返します。
-
# delete (ドキュメント) = ドキュメント | nil (#delete_one)
指定されたドキュメントをターゲットから削除します。
-
# delete_all (条件 = {}) = 整数
コールバックを実行せずに、関連付けられているすべてのドキュメントを削除します。
-
# delete_if =多数 |列挙型
指定されたブロックが true を返すすべてのドキュメントを削除します。
-
#破棄_all (条件 = {}) = 整数
コールバックを実行しながら、関連付けられているすべてのドキュメントを破棄します。
-
が存在する場合= true | false
この関連付け内のドキュメントがデータベースに存在するかどうかを判断します。
-
#find (*args、 & ブロック) = ドキュメント | Array[Document]|<Document> nil
いくつかの異なる方法で、この関連付け内のドキュメントを検索します。
-
# in_memory = 配列=ドキュメント=<Document>
メモリにロードされている関連付け内のすべてのドキュメントを取得します。
-
#初期化(ベース、ターゲット、関連付け)=Many
コンストラクター
新しい embedded_many 関連付けをインスタンス化します。
-
#pop (count = nil) = ドキュメント |配列[Document]<Document>
関連付けからドキュメントを取り出します。
-
# シフト (カウント = nil)= ドキュメント |配列[Document]<Document>
関連付けからドキュメントを移行します。
-
置換( Docs ) = 多
関係内の既存のドキュメントを、指定されたターゲット ドキュメントに置き換えます。
-
スコープが設定されていない = Criteria
以前のすべてのスコープが削除された 関連付けを返します。
Batchableに含まれるメソッド
#batch_client 、 #batch_insert 、 #batch_remove 、 #batch_replace
位置から含まれるメソッド
多くから継承されたメソッド
#空白? 、 #create 、#create 、 #create 、 #find_or_create_by 、 #find_or_create_by. 、 #find_or_initialize_by 、 #nil? 、 # response_toか。 、 #scoped 、 #serialize_hash
プロキシから継承されたメソッド
apply_ordering 、 #extend_proxies 、#init 、# klas 、# reset_unloaded 、 #置換可能
マーシャリング可能なに含まれるメソッド
コンストラクターの詳細
#初期化(ベース、ターゲット、関連付け)= Many
新しい embedded_many 関連付けをインスタンス化します。
273 274 275 276 277 278 279 280 281 282 283 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行273 デフォルト 初期化(ベース, ターゲット, 関連付け) init(ベース, ターゲット, 関連付け) 行う _ target.each_with_index 行う |doc, index| 統合(doc) doc._index = index end update_attributes_hash @_unscoped = _ target.dup @_ target = scope(_ target) end end |
動的メソッド処理
このクラスはメソッド_欠落メソッドを通じて動的メソッドを処理します
#メソッド_欠落 =基準値 |オブジェクト(プライベート)
ターゲット配列が指定されたメソッドに応答しない場合は、クラス上の名前付きスコープまたは基準を見つけて、呼び出しを送信します。
メソッドが配列に存在する場合は、デフォルトのプロキシ動作を使用します。
439 440 441 442 443 444 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行439 ruby2_keywords デフォルト メソッド_欠落(name, *args, &ブロック) return スーパー 場合 _ target.respond_to?(name) klass.送信(:with_scope, 条件) 行う 条件.public_send(name, *args, &ブロック) end end |
クラスメソッドの詳細
。埋め込み = true
関連付けが埋め込みである場合は true を返します。 この場合は常に true 。
555 556 557 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行555 デフォルト true end |
。 foreign_key_supfix = nil
外部キー フィールドのサフィックス(_id)または "_ids" を返します。
565 566 567 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行565 デフォルト foreign_key_supfix nil end |
インスタンス メソッドの詳細
# < (*args) =オブジェクト名: push
ドキュメントまたはドキュメントの配列を関連付けに追加します。 プロセス内で親を設定し、インデックスを更新します。
23 24 25 26 27 28 29 30 31 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行23 デフォルト <(*args) docs = args.平面 return concat(docs) 場合 docs.サイズ > 1 場合 doc = docs.最初に 追加(doc) doc.保存 場合 永続的かどうか & & !_assigning? end 自己 end |
_remove (#document) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
コレクション*メモリ内: から 1 つのドキュメントを削除します。 変更は保持されません。
167 168 169 170 171 172 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行167 デフォルト _remove(ドキュメント) _ target.delete_one(ドキュメント) _unscoped.delete_one(ドキュメント) update_attributes_hash reindex end |
# as_document = 配列<Hash>
この関連付けを、データベース内のその表現として取得します。
41 42 43 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行41 デフォルト as_document as_attributes.コレクション { |attrs| BSON::ドキュメント.新着情報(attrs) } end |
ビルド番号のビルド(属性 = {}、タイプ = nil) {|doc| ... } =ドキュメント別名: new
関連付け内に新しいドキュメントを構築し、それをターゲットに追加します。 サブクラスを指定する場合は、任意の型を取ります。
69 70 71 72 73 74 75 76 77 78 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行69 デフォルト 構築(属性 = {}, タイプ = nil) doc = 工場.execution_Build(タイプ || _関連付け.klass, 属性, execution_colbacks: false) 追加(doc) doc.apply_post_processed_defaults ノードの数(doc) 場合 ブロック_指定 doc.run_pending_shellbacks doc.run_colbacks(: build) { doc } _base._reset_memoized_descendants. doc end |
#クリア=自己
関連付けをクリアします。 ドキュメントがすでに保存されている場合は、 db からドキュメントが削除されます。
ホスト ドキュメントが永続化されていないが、その _id が永続化されたドキュメントと一致する場合、関連付けに対して #client を呼び出すと、アプリケーション内のドキュメントのセット(ホストにロードされる)が次のものとは異なる場合でも、関連付けのドキュメントがデータベースから削除されます。データベース内にある と のいずれの関連付けでも、ホストには永続化されたドキュメントが含まれていない可能性があります。
96 97 98 99 100 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行96 デフォルト クリア batch_client(_ target.dup) update_attributes_hash 自己 end |
#concat(docs) ⇒ Array<Document>
ドキュメントの配列を関連付けに追加します。 ドキュメントを 1 つずつ保持するのではなく、バッチ挿入を実行します。
54 55 56 57 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行54 デフォルト concat(docs) batch_insert(docs) ただし、 docs.空の場合 自己 end |
#count(*args, &block) ⇒ Integer
データベースに実際に保存された、関連付け内のドキュメントの数を返します。
ドキュメントの合計数が必要な場合は、 #size を使用します。
引数またはブロックが存在する場合、#count はtarget
の #count メソッドに委任し、永続化されたドキュメントと非永続ドキュメントの両方を含むようになります。
124 125 126 127 128 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行124 デフォルト count(*args, &ブロック) return _ target.count(*args, &ブロック) 場合 args.any? || ブロック _ target.選択する { |doc| doc.永続化された場合 }.サイズ end |
# delete (ドキュメント) =ドキュメント| nil別名: delete_one
指定されたドキュメントをターゲットから削除します。 このメソッドは、操作の発生後に配列のインデックスを再インデックス化するためにプロキシされます。
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行139 デフォルト 削除(ドキュメント) execution_colbacks_round(:remove, ドキュメント) 行う doc = _ target.delete_one(ドキュメント) 場合 doc & & !_bining? _unscoped.delete_one(doc) 場合 _assigning? _base.add_atomic_pull(doc) else doc.削除(次を抑制します。 true) unbind_one(doc) end update_attributes_hash end reindex doc end end |
# delete_all (条件 = {}) =整数
コールバックを実行せずに、関連付けられているすべてのドキュメントを削除します。
185 186 187 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行185 デフォルト delete_all(条件 = {}) delete_all(条件, :delete) end |
# delete_if =多数|列挙型
指定されたブロックが true を返すすべてのドキュメントを削除します。
198 199 200 201 202 203 204 205 206 207 208 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行198 デフォルト delete_if 場合 ブロック_指定 dup_ target = _ target.dup dup_ target.各 行う |doc| 削除(doc) 場合 ノードの数(doc) end 自己 else スーパー end end |
#破棄_all (条件 = {}) =整数
コールバックを実行しながら、関連付けられているすべてのドキュメントを破棄します。
221 222 223 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行221 デフォルト delete_all(条件 = {}) delete_all(条件, :破棄) end |
が存在する場合= true | false
この関連付け内のドキュメントがデータベースに存在するかどうかを判断します。
231 232 233 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行231 デフォルト 存在するかどうか _ target.any? { |doc| doc.永続化された場合 } end |
#find(*args, &block) ⇒ Document | Array<Document> | nil
いくつかの異なる方法で、この関連付け内のドキュメントを検索します。
このメソッドはMongoid::Criteria#findに委任されます。 このメソッドにブロックが指定されていない場合、指定された _id 値に対して 1 つまたは複数のドキュメントが返されます。
このメソッドにブロックが指定されると、ブロックが真実の値を返す現在の Criteria オブジェクトによって見つかったドキュメントのうちの最初のドキュメントが返されます。
259 260 261 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行259 デフォルト find(*args, &ブロック) 条件.find(*args, &ブロック) end |
#in_memory ⇒ Array<Document>
メモリにロードされている関連付け内のすべてのドキュメントを取得します。
291 292 293 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行291 デフォルト in_memory _ target end |
#pop (count = nil) =ドキュメント|配列 <ドキュメント>
関連付けからドキュメントを取り出します。 これは単一または複数のドキュメントであり、変更が自動的に保持されます。
308 309 310 311 312 313 314 315 316 317 318 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行308 デフォルト ポップ(count = nil) 場合 count 場合 docs = _ target[_ target.サイズ - count, _ target.サイズ] docs.各 { |doc| 削除(doc) } end else 削除(_ target[-1]) end.タップ 行う update_attributes_hash end end |
#シフト(カウント = nil)=ドキュメント|配列 <ドキュメント>
関連付けからドキュメントを移行します。 これは単一または複数のドキュメントであり、変更が自動的に保持されます。
333 334 335 336 337 338 339 340 341 342 343 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行333 デフォルト シフト(count = nil) 場合 count 場合 _ target.サイズ > 0 & & docs = _ target[0, count] docs.各 { |doc| 削除(doc) } end else 削除(_ target[0]) end.タップ 行う update_attributes_hash end end |
置換( Docs ) =多
関係内の既存のドキュメントを、指定されたターゲット ドキュメントに置き換えます。
354 355 356 357 358 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行354 デフォルト replacement(docs) batch_replace(docs) update_attributes_hash 自己 end |
スコープ が設定されていない = Criteria
以前のすべてのスコープが削除された 関連付けを返します。 これは、データベース内のDocsの正確な表現です。
367 368 369 370 371 372 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/ embedded/ embeddeds_many/proxy.rb '、 行367 デフォルト スコープが設定されていない criterion = klass.スコープが設定されていない criterion. = true criterion.ドキュメント = _unscoped.delete_if(&:marked_for_destruction) criterion end |