クラス: Mongoid::関連付け::Eager

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongoid/関連付け/erager.rb

Overview

早期ロード プリロード関数の基本クラス。

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#initialize(associations, Docs, use_lookup = false, パイプライン = []) ⇒ Base

早期ロード クラスをインスタンス化します。

例:

早期ロード プリローダーに属する新しい を作成します。

BelongsTo.new(association, parent_docs)

パラメーター:

  • 関連付け 配列未満Mongoid ::関連付け ::Relatable >

    早期負荷への関連付け

  • docs 配列 <ドキュメント>

    関連付けをプリロードするドキュメント

  • use_lookup ブール値 (デフォルトはfalse

    早期ロードに $lookup集計を使用するかどうか。これは Criteria#eager_load で使用されます。

  • パイプライン Array <Hash> (デフォルトは[]

    $lookup を使用して早期読み込みを行う場合に使用する集計パイプライン。



21
22
23
24
25
26
27
# ファイル 'lib/mongoid/as associated/EAger.rb' は、 21行

デフォルト 初期化(関連付け, docs, use_lookup = false, パイプライン = [])
  @関連付け = 関連付け
  @docs = docs
  @grouped_docs = {}
  @use_lookup = use_lookup
  @ pipeline = パイプライン
end

インスタンス メソッドの詳細

#runArray

プリローダーを実行します。

例:

関連付けをドキュメントにプリロードします。

loader.run

次の値を返します。

  • 配列

    指定されたドキュメントの一覧。



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# ファイル 'lib/mongoid/as associated/EAger.rb' は、 35行

デフォルト 実行する
  @loaded = []

  場合 @use_lookup
    preload_with_lookup
    @loaded = @docs
    return @loaded.平面
  end

  一方 shift_関連付け
    プリロード
    @loaded < @docs.コレクション { |d| d.送信(@関連付け.name) 場合 d.respond_to?(@関連付け.name) }
  end
  @loaded.平面
end