クラス: Mongoid::関連付け::参照::HasMany::Enumerable
- 継承:
-
オブジェクト
- オブジェクト
- Mongoid::関連付け::参照::HasMany::Enumerable
- 次による拡張機能。
- 転送可能
- 次のことが含まれます。
- Enumerable
- 定義:
- lib/mongoid/関連付け/referenced/has_many/enumerable.rb
Overview
このクラスは、_loaded ドキュメントの基準または配列である可能性があるターゲットを持つすべての参照された関連付けのラッパーです。 これは両方の場合またはその 2 の組み合わせを処理します。
インスタンス属性の概要を折りたたむ
-
# _added =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
-
# _added 追加されたドキュメント。 (追加されたドキュメント) = オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
-
# _loaded =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
-
# _loaded _loaded された永続化ドキュメント。 (_loaded を含む永続化されたドキュメント。) = オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
-
# _unloaded =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
-
# _unloaded 永続化されたDocsを表す基準。 (Acriteriarepresentationhardsteddocs.) = オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
インスタンス メソッドの概要を折りたたむ
-
Node (ドキュメント)=ドキュメント(また: #push)
列挙可能にドキュメントを追加します。
-
# == (その他) ==(その他) ========= ================================================================== false
列挙可能な が他のオブジェクトと等しいかどうかを確認します。
-
# === (その他) ========= =================================================================== false
ケース ステートメントでは、指定されたオブジェクトに対する列挙可能値の等価性を確認します。
-
_loaded? = true | false
列挙可能ファイルは _loaded でしたか。 これは、条件が実行されている場合、または条件全体を手動でロードした場合に当てはまります。
-
#任意(*args) = true | false
関連付けにドキュメントがあるかどうかを返します。ドキュメントは、指定されたフィルターに従って任意に作成されます。
-
# as_json (オプション = {}) = ハッシュ
エンコーディングせずに、エントリに #as_json を送信します。
-
#クリア= 配列 <Document>
この列挙可能なすべてのドキュメントをクリアします。
-
# clone = 配列 <Document>
列挙可能な各ドキュメントを複製します。
-
#delete(document) {|doc| ... } ⇒ Document
指定されたドキュメントを列挙可能から削除します。
-
#delete_if (<Document>
ブロックが true を返す列挙可能なすべてのドキュメントを削除します。
-
#各= true
この列挙型を反復処理すると、いくつかの異なるシナリオを処理する必要があります。
-
#空= true | false
列挙可能な は空になっていますか。 _loaded かどうかに基づいて、カウントが 0 であるかどうかが判断されます。
-
#first(limit = nil) ⇒ Document
列挙可能な最初のドキュメントを取得します。
-
# in_memory = 配列=ドキュメント=<Document>
_loaded または _added された列挙可能なすべてのドキュメントを返します。
-
# を含みますか(doc) = true | false
提供されたドキュメントがターゲットに含まれているかどうか。
-
#initialize(target, base = nil, association = nil) ⇒ Enumerable
コンストラクター
基準または配列のいずれかを使用して、新しい列挙可能な を初期化します。
-
詳しくは、 を 検査し ますstring
検査では、配列スタイルの印刷が必要かどうかのエントリのみが検査されます。
-
#last(limit = nil) ⇒ Document
列挙可能な最後のドキュメントを取得します。
-
# mongostat<Object>
列挙可能なプロキシをマーシャリングダンプするのに必要なデータを提供します。
-
# mongostal_load (data) = 配列"<Object>
列挙可能なプロキシをマーシャリングロードするのに必要なデータをロードします。
-
#reset ⇒ false
列挙可能な状態を永続的な状態にリセットします。
-
delete_unloaded (criteria) = オブジェクト
基礎となるロードされていない基準オブジェクトを新しい値でリセットします。
-
response_to? (name, include_private = false) = true | false
この列挙型は指定されたメソッドに応答しますか?
-
#サイズ= 整数(また: #長さ)
この列挙型の合計サイズを取得します。
-
# to_json (オプション = {}) = string
エントリに #to_json を送信します。
-
#uniq ⇒ Array<Document>
列挙可能なすべての一意のドキュメントを返します。
コンストラクターの詳細
#initialize(target, base = nil, association = nil) ⇒ Enumerable
基準または配列のいずれかを使用して、新しい列挙可能な を初期化します。
262 263 264 265 266 267 268 269 270 271 272 273 274 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 262行 デフォルト 初期化(ターゲット, ベース = nil, 関連付け = nil) @_base = ベース @_関連付け = 関連付け 場合 ターゲット.is_a?(条件) @_added, @executed, @_loaded, @_unloaded = {}, false, {}, ターゲット else @_added, @executed = {}, true @_loaded = ターゲット.inject({}) 行う |_ target, doc| _ target[doc._id] = doc 場合 doc _ target end end end |
インスタンス属性の詳細
# _added =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
21 22 23 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 21行 デフォルト _added @_added end |
# _added 追加されたドキュメント。 (追加されたドキュメント) =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
21 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 21行 attr_accessor :_added, :_loaded, :_unloaded |
# _loaded =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
21 22 23 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 21行 デフォルト _loaded @_loaded end |
# _loaded _loaded された永続化ドキュメント。 (_loaded を含む永続化されたドキュメント。) =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
21 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 21行 attr_accessor :_added, :_loaded, :_unloaded |
# _unloaded =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
21 22 23 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 21行 デフォルト _unloaded @_unloaded end |
# _unloaded 永続化されたDocsを表す基準。 (Acriteriarepresentationhardsteddocs.) =オブジェクト
3 つの主要なインスタンス変数はドキュメントのコレクションです。
21 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 21行 attr_accessor :_added, :_loaded, :_unloaded |
インスタンス メソッドの詳細
Node (ドキュメント)=ドキュメント(別名: push )
列挙可能にドキュメントを追加します。
60 61 62 63 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 60行 デフォルト <(ドキュメント) _added[ドキュメント._id] = ドキュメント 自己 end |
# == (その他) ==(その他) ========= ================================================================== false
列挙可能な が他のオブジェクトと等しいかどうかを確認します。
33 34 35 36 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 33行 デフォルト ==(その他) return false ただし、 その他.respond_to?(:entries) エントリ == その他.エントリ end |
# === (その他) ========= =================================================================== false
ケース ステートメントでは、指定されたオブジェクトに対する列挙可能値の等価性を確認します。
47 48 49 50 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 47行 デフォルト ===(その他) return false ただし、 その他.respond_to?(:entries) エントリ === その他.エントリ end |
_loaded? = true | false
列挙可能ファイルは _loaded でしたか。 これは、条件が実行されている場合、または条件全体を手動でロードした場合に当てはまります。
353 354 355 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 353行 デフォルト _loaded? !!@executed end |
#任意(*args) = true | false
関連付けにドキュメントがあるかどうかを返します。ドキュメントは、指定されたフィルターに従って任意に作成されます。
このメソッドは、関連付けに永続化されたドキュメントがある場合は true を返し、まだ永続化されていないドキュメントがある場合は true を返します。
関連付けがすでにロードされている場合、このメソッドはロードされたドキュメントを検査し、データベースをクエリしません。 関連付けがロードされていない場合、引数レスおよびブロックレス バージョンは関連付けをロードしません。他のバージョン(列挙可能に委任する)では、完了まで反復処理されるかどうかに応じて、関連付けを完全にロードするかどうかに応じて、関連付けを完全にロードするかどうかが決まります。
このメソッドは パラメーターと ブロックを取ることができます。 パラメーターまたは ブロックのいずれかの動作は、標準ライブラリの 列挙可能モジュールに委任されます。
列挙可能が任意の場合に注意してくださいメソッドがブロックとパターンの両方で呼び出される場合、パターンのみを使用します。
225 226 227 228 229 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 225行 デフォルト any?(*args) return スーパー 場合 args.any? || ブロック_指定 !空の場合 end |
# as_json (オプション = {}) =ハッシュ
エンコーディングせずに、エントリに #as_json を送信します。
452 453 454 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 452行 デフォルト as_json( = {}) エントリ.as_json() end |
#クリア=配列 <ドキュメント>
この列挙可能なすべてのドキュメントをクリアします。 ブロックが渡された場合、メモリ内の各ドキュメントに生成されます。
79 80 81 82 83 84 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 79行 デフォルト クリア 場合 ブロック_指定 in_memory { |doc| ノードの数(doc) } end _loaded.クリア および _added.クリア end |
#clone ⇒ Array<Document>
これにより、すべてのドキュメントがメモリに読み込まれます。
列挙可能な各ドキュメントを複製します。
94 95 96 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 94行 デフォルト 複製 コレクション { |doc| doc.複製 } end |
#delete(document) {|doc| ... } ⇒ Document
指定されたドキュメントを列挙可能から削除します。
106 107 108 109 110 111 112 113 114 115 116 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 106行 デフォルト 削除(ドキュメント) doc = (_loaded.削除(ドキュメント._id) || _added.削除(ドキュメント._id)) ただし、 doc 場合 _unloaded & & _unloaded.WHERE(_id: ドキュメント._id).存在するかどうか ノードの数(ドキュメント) 場合 ブロック_指定 return ドキュメント end end ノードの数(doc) 場合 ブロック_指定 doc end |
# delete_if (=%) =配列=ドキュメント=
この操作は、 データベースからすべてのドキュメントを読み込みます。
ブロックが true を返す列挙可能なすべてのドキュメントを削除します。
129 130 131 132 133 134 135 136 137 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 129行 デフォルト delete_if(&ブロック) load_all) delete = in_memory.選択する(&ブロック) delete.各 行う |doc| _loaded.削除(doc._id) _added.削除(doc._id) end 自己 end |
#各= true
この列挙型を反復処理すると、いくつかの異なるシナリオを処理する必要があります。
列挙可能で、基準がメモリに _loaded されている場合、すべての _loaded Docs Docsロックが解除されます。
列挙型に基準の _loaded が ない 場合は、ドキュメントのロード中にカーソルが反復され、次に _added Docsが反復されます。
ブロックが渡されない場合は、すべてのDocsを含む列挙型が返されます。
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 162行 デフォルト 各 ただし、 ブロック_指定 return to_enum end 場合 _loaded? _loaded.each_pair 行う |id, doc| ドキュメント = _added.削除(doc._id) || doc set_base(ドキュメント) ノードの数(ドキュメント) end else unloaded_documents.各 行う |doc| ドキュメント = _added.削除(doc._id) || _loaded.削除(doc._id) || doc _loaded[ドキュメント._id] = ドキュメント set_base(ドキュメント) ノードの数(ドキュメント) end end _added.each_pair 行う |id, doc| ノードの数(doc) end @executed = true end |
#空= true | false
列挙可能な は空になっていますか。 _loaded かどうかに基づいて、カウントが 0 であるかどうかが判断されます。
193 194 195 196 197 198 199 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 193行 デフォルト 空の場合 場合 _loaded? in_memory.空の場合 else _added.空の場合 & & !_unloaded.存在するかどうか end end |
#first(limit = nil) ⇒ Document
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用すると予期しないパフォーマンスが低下する場合は、代わりに 以降を使用してください。 では順序が保証されないことに注意してください。
列挙可能な最初のドキュメントを取得します。 最初に永続化されたドキュメントをチェックします。 列挙可能な全体をロードすることはありません。
246 247 248 249 250 251 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 246行 デフォルト 最初に(limit = nil) _loaded.試す(:values).試す(:first) || _added[(ul = _unloaded.試す(:first, limit)).試す(:_id)] || ul || _added.values.試す(:first) end |
#in_memory ⇒ Array<Document>
ブロックが渡されると、各ドキュメントに生成されます。
_loaded または _added された列挙可能なすべてのドキュメントを返します。
309 310 311 312 313 314 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 309行 デフォルト in_memory docs = (_loaded.values + _added.values) docs.各 行う |doc| ノードの数(doc) 場合 ブロック_指定 end end |
# を含みますか(doc) = true | false
提供されたドキュメントがターゲットに含まれているかどうか
284 285 286 287 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 284行 デフォルト include?(doc) return スーパー ただし、 _unloaded _unloaded.WHERE(_id: doc._id).存在するかどうか || _added.has_keys_keys(doc._id) end |
詳しくは、 を 検査しstring ます
検査では、配列スタイルの印刷が必要かどうかのエントリのみが検査されます。
296 297 298 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 296行 デフォルト 検査する エントリ.検査する end |
#last(limit = nil) ⇒ Document
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用すると予期しないパフォーマンスが低下する場合は、代わりに 以降を使用してください。 では順序が保証されないことに注意してください。
列挙可能な最後のドキュメントを取得します。 最初に新しいドキュメントをチェックします。 列挙可能な全体をロードすることはありません。
331 332 333 334 335 336 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 331行 デフォルト last(limit = nil) _added.values.試す(:last) || _loaded.試す(:values).試す(:last) || _added[(ul = _unloaded.試す(:last, limit)).試す(:_id)] || ul end |
# mongostat<Object>
列挙可能なプロキシをマーシャリングダンプするのに必要なデータを提供します。
363 364 365 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 363行 デフォルト legacy_dump [_added, _loaded, _unloaded, @executed] end |
# mongostal_load (data) = 配列"<Object>
列挙可能なプロキシをマーシャリングロードするのに必要なデータをロードします。
373 374 375 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 373行 デフォルト legacy_load(データ) @_added, @_loaded, @_unloaded, @executed = データ end |
#reset ⇒ false
列挙可能な状態を永続的な状態にリセットします。
383 384 385 386 387 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 383行 デフォルト リセット _loaded.クリア _added.クリア @executed = false end |
delete_unloaded (criteria) =オブジェクト
基礎となるロードされていない基準オブジェクトを新しい値でリセットします。 基礎となる配列を同期するために、HATM 関連付けを使用しました。
396 397 398 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 396行 デフォルト delete_unloaded(条件) @_unloaded = 条件 場合 _unloaded.is_a?(条件) end |
response_to? (name, include_private = false) = true | false
この列挙型は指定された メソッドに応答しますか。
410 411 412 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 410行 デフォルト respond_to?(name, include_private = false) [].respond_to?(name, include_private) || スーパー end |
サイズ:整数 または、 Lengthとも呼ばれます
この列挙型の合計サイズを取得します。 これは、すべての永続化されたドキュメントと非永続化ドキュメントの組み合わせです。
421 422 423 424 425 426 427 428 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 421行 デフォルト サイズ count = (_unloaded ? _unloaded.count : _loaded.count) 場合 count.zero? count + _added.count else count + _added.values.count { |d| d.new_record? } end end |
# to_json (オプション = {}) = string
エントリに #to_json を送信します。
440 441 442 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 440行 デフォルト to_json( = {}) エントリ.to_json() end |
#uniq ⇒ Array<Document>
この操作は、 データベースからすべてのドキュメントを読み込みます。
列挙可能なすべての一意のドキュメントを返します。
464 465 466 |
# ファイル 'lib/mongoid/関連付け/referenced/has_many/enumerable.rb' は、 464行 デフォルト 一意 エントリ.一意 end |