クラス: Mongoid::Contextual::Memory

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
列挙可能、関連付け::EagerLoadable集計可能::メモリクエリ可能 、位置指定
定義:
lib/mongoid/contextual/memory.rb

Overview

アプリケーション メモリにロードされたドキュメントに対して一括クエリと永続化操作を実行するために使用されるコンテキスト オブジェクト。 このクラスのメソッド インターフェースは Mongoid::Contextual::Mongo と整合性があります。

インスタンス属性の概要を折りたたむ

クエリ可能な に含まれる属性

コレクションコレクション クエリ対象のコレクションです。#criteria#criteria コンテキストの基準。#klas#klass 基準の klas。

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

位置から含まれるメソッド

位置的に

クエリ可能な に含まれるメソッド

#blank?

関連::EagerLoadableに含まれるメソッド

#create_pipeline#eager_load#eager_load_with_lookup#eager_loadable?#preload#preload_for_lookup#switch_local_and_foreign_fields?

Aggregable::Memoryに含まれるメソッド

、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、

コンストラクターの詳細

#初期化(条件) =メモリ

メモリ コンテキスト内に新しい を作成します。

例:

新しいコンテキストを作成します。

Memory.new(criteria)

パラメーター:

  • 条件 基準

    基準。



175
176
177
178
179
180
181
182
183
184
# ファイル 'lib/mongoid/contextual/memory.rb' の行175

デフォルト 初期化(条件)
  @criteria, @klass = 条件, 条件.klass
  @documents = 条件.ドキュメント.選択する 行う |doc|
    @root ||= doc._root
    @collection ||= ルート.コレクション
    doc._一致するか?(条件.セレクター)
  end
  apply_sorting
  apply_options
end

インスタンス属性の詳細

ドキュメント数 →オブジェクト(読み取り専用)

属性ドキュメントの値を返します。



23
24
25
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

デフォルト ドキュメント
  @documents
end

セレクターに一致するメモリ内のドキュメントを照合する数。 ( ) 詳しくは、オブジェクト(読み取り専用)



23
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

attr_reader :documents, :path, : root, : セレクター

# path =オブジェクト(読み取り専用)

属性パスの値を返します。



23
24
25
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

デフォルト path
  @path
end

# path アトミック パス。 (アトミック パス。) 詳しくは、オブジェクト(読み取り専用)



23
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

attr_reader :documents, :path, : root, : セレクター

#ルート=オブジェクト(読み取り専用)

属性ルートの値を返します。



23
24
25
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

デフォルト ルート
  @root
end

# root ルート ドキュメント。 (ルート ドキュメント) 詳しくは、オブジェクト(読み取り専用)



23
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

attr_reader :documents, :path, : root, : セレクター

#セレクター=オブジェクト(読み取り専用)

属性セレクターの値を返します。



23
24
25
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

デフォルト セレクター
  @Selector
end

#セレクター ルート ドキュメント セレクター。 (ルート ドキュメント セレクター) =オブジェクト(読み取り専用)



23
# ファイル 'lib/mongoid/contextual/memory.rb' の行23

attr_reader :documents, :path, : root, : セレクター

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

# == (その他) ==(その他) ========= ================================================================== false

コンテキストが他のオブジェクトと等しいかどうかを確認します。

例:

等価性を確認します。

context == []

パラメーター:

  • その他 配列

    その他の配列。

次の値を返します。

  • true | false

    オブジェクトが等しい場合。



33
34
35
36
37
# ファイル 'lib/mongoid/contextual/memory.rb' の行33

デフォルト ==(その他)
  return false ただし、 その他.respond_to?(:entries)

  エントリ == その他.エントリ
end

delete = nil別名: #delete_all

データベース内のセレクターに一致するすべてのドキュメントを削除します。

例:

すべてのドキュメントを削除します。

context.delete

次の値を返します。

  • (nil)

    Nil.



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# ファイル 'lib/mongoid/contextual/memory.rb' の行45

デフォルト 削除
  delete = count
  削除 = map 行う |doc|
    preserve_remove(doc)
    doc.送信(:as_attributes)
  end
  ただし、 削除.空の場合
    コレクション.find(セレクター).update_one(
      位置的に(セレクター, '$pullAll' => { path => 削除 }),
      セッション: _session
    )
  end
  delete
end

# delete = nil 別名 : delete_all

データベース内のセレクターに一致するすべてのドキュメントを破棄します。

例:

すべてのドキュメントを破棄します。

context.destroy

次の値を返します。

  • (nil)

    Nil.



67
68
69
70
71
72
73
74
# ファイル 'lib/mongoid/contextual/memory.rb' の行67

デフォルト 破棄する
  delete = count
   行う |doc|
    ドキュメント.delete_one(doc)
    doc.破棄する
  end
  delete
end

distinct<Object>

指定されたフィールドの db で個別の値を取得します。

例:

個別の値を取得します。

context.distinct(:name)

パラメーター:

  • フィールド ( string | Symbol )

    フィールドの名前。

次の値を返します。

  • 配列<Object>

    フィールドの個別の値。



85
86
87
# ファイル 'lib/mongoid/contextual/memory.rb' の行85

デフォルト distinct(フィールド)
  プル型(フィールド).一意
end

( & ブロック) =列挙型

コンテキストを反復処理します。 ブロックが提供された場合、 はそれぞれの Mongoid ドキュメントに降格し、それ以外の場合は列挙を返します。

例:

コンテキストを反復処理します。

context.each do |doc|
  puts doc.name
end

次の値を返します。

  • 列挙型

    列挙型。



98
99
100
101
102
103
104
105
# ファイル 'lib/mongoid/contextual/memory.rb' の行98

デフォルト (&ブロック)
  場合 ブロック_指定
    document_for_iteration.(&ブロック)
    自己
  else
    to_enum
  end
end

が存在する場合(id_or_条件 = :none) = true | false

コンテキストにドキュメントが存在するかどうかを確認します。

例:

コンテキストにドキュメントが存在するかどうかを確認します。

context.exists?

指定された _id のドキュメントが存在するかどうか。

context.exists?(BSON::ObjectId(...))

指定された条件のためにドキュメントが存在するかどうかを確認します。

context.exists?(name: "...")

パラメーター:

  • id_or_条件 ハッシュ | オブジェクト | false (デフォルトは:none

    検索対象の _id、条件のハッシュ、 nil または false 。

次の値を返します。

  • true | false

    カウントが 0 より大きい場合。 nil または false が渡された場合は常に false 。



123
124
125
126
127
128
129
130
# ファイル 'lib/mongoid/contextual/memory.rb' の行123

デフォルト 存在するかどうか(id_or_条件 = :none)
  ケース id_or_条件
  次の場合: :none 次に any?
  次の場合: nil, false 次に false
  次の場合: ハッシュ 次に メモリ.新着情報(条件.WHERE(id_or_条件)).存在するかどうか
  else メモリ.新着情報(条件.WHERE(_id: id_or_条件)).存在するかどうか
  end
end

5 分の 1 =ドキュメント

条件のセレクターのデータベース内の 5 番目の document を取得します。

例:

5 番目のドキュメントを取得します。

context.fifth

次の値を返します。



456
457
458
# ファイル 'lib/mongoid/contextual/memory.rb' の行456

デフォルト 50
  Bearer_load([ ドキュメント.50 ]).最初に
end

# 5 番目の。 =ドキュメント

条件のセレクターのデータベース内の 5 番目のドキュメントを取得します。見つからない場合はエラーが発生します。

例:

5 番目のドキュメントを取得します。

context.fifth!

次の値を返します。

次の値が発生します。



470
471
472
# ファイル 'lib/mongoid/contextual/memory.rb' の行470

デフォルト 5 番目のドキュメント。
  50 || resume_document_not_find_error
end

最初に#(制限=nil)=ドキュメントは別名: 1find_first

条件のセレクターのデータベース内の最初のドキュメントを取得します。

例:

最初のドキュメントを取得します。

context.first

パラメーター:

  • limit 整数 (デフォルトはnil

    返されるドキュメントの数。

次の値を返します。



140
141
142
143
144
145
146
147
148
149
150
151
# ファイル 'lib/mongoid/contextual/memory.rb' の行140

デフォルト 最初に(limit = nil)
  use_first = limit.nil?
  limit ||= 1
  場合 条件.use_lookup?
    @criteria = 条件.limit(limit)
    結果 = weekly_load_with_lookup
  else
    結果 = Bearer_load(ドキュメント.最初に(limit))
  end

  use_first ? 結果.最初に : 結果
end

#first!Document

条件のセレクターのデータベース内の最初のドキュメントを取得します。見つからない場合はエラーが発生します。

例:

最初のドキュメントを取得します。

context.first!

次の値を返します。

次の値が発生します。



165
166
167
# ファイル 'lib/mongoid/contextual/memory.rb' の行165

デフォルト 1 つ目。
  最初に || resume_document_not_find_error
end

4 番目の =ドキュメント

条件のセレクターのデータベース内の 4 番目の document を取得します。

例:

4 番目のドキュメントを取得します。

context.fourth

次の値を返します。



432
433
434
# ファイル 'lib/mongoid/contextual/memory.rb' の行432

デフォルト 4 つ
  Bearer_load([ ドキュメント.4 つ ]).最初に
end

4 番目の。 =ドキュメント

条件のセレクターのデータベース内の 4 番目の document を取得します。見つからない場合はエラーが発生します。

例:

4 番目のドキュメントを取得します。

context.fourth!

次の値を返します。

次の値が発生します。



446
447
448
# ファイル 'lib/mongoid/contextual/memory.rb' の行446

デフォルト 4 つ目。
  4 つ || resume_document_not_find_error
end

#inc(incs) ⇒ Enumerator

すべてのドキュメントの 値を増やします。

例:

増分を実行します。

context.inc(likes: 10)

パラメーター:

  • incs ハッシュ

    の操作です。

次の値を返します。

  • 列挙型

    列挙型。



194
195
196
197
198
# ファイル 'lib/mongoid/contextual/memory.rb' の行194

デフォルト 含む(incs)
   行う |ドキュメント|
    ドキュメント.含む(incs)
  end
end

#last(limit = nil) ⇒ Document

条件のセレクターのデータベース内の最後のdocumentを取得します。

例:

最後のドキュメントを取得します。

context.last

パラメーター:

  • limit 整数 (デフォルトはnil

    返されるドキュメントの数。

次の値を返します。



208
209
210
211
212
213
214
# ファイル 'lib/mongoid/contextual/memory.rb' の行208

デフォルト last(limit = nil)
  場合 limit
    Bearer_load(ドキュメント.last(limit))
  else
    Bearer_load([ ドキュメント.last ]).最初に
  end
end

#last!Document

条件のセレクターのデータベース内の最後のドキュメントを取得します。見つからない場合はエラーが発生します。

例:

最後のドキュメントを取得します。

context.last!

次の値を返します。

次の値が発生します。



226
227
228
# ファイル 'lib/mongoid/contextual/memory.rb' の行226

デフォルト 最後に、次を追加します。
  last || resume_document_not_find_error
end

長さ整数別名:サイズ

コンテキスト内の一致するドキュメントの長さを取得します。

例:

一致するドキュメントの長さを取得します。

context.length

次の値を返します。

  • (整数)

    一致する長。



236
237
238
# ファイル 'lib/mongoid/contextual/memory.rb' の行236

デフォルト Length
  ドキュメント.Length
end

#制限(値) ~メモリ

返されるドキュメントの数を制限します。

例:

ドキュメントを制限します。

context.limit(20)

パラメーター:

  • 価値 (整数)

    返されるドキュメントの数。

次の値を返します。



249
250
251
252
# ファイル 'lib/mongoid/contextual/memory.rb' の行249

デフォルト limit(価値)
  自己.制限する = 価値
  自己
end

# 選択 (* フィールド)= オブジェクト | Array[Object]<Object>

メモリ内のフィールド値を選択します。

例:

メモリ内の値を取得します。

context.pick(:name)

パラメーター:

  • *fields ( [ string | Symbol ]... )

    選択するフィールド。

次の値を返します。

  • オブジェクト | 配列 <Object>

    選択された値。



276
277
278
279
280
# ファイル 'lib/mongoid/contextual/memory.rb' の行276

デフォルト 選択(*フィールド)
  return ただし、 doc = ドキュメント.最初に

  plack_from_doc(doc, *フィールド)
end

プル型 (* フィールド)= 配列= オブジェクト=================================配列未満<Object><Object>

メモリ内のフィールド値をプルします。

例:

メモリ内の値を取得します。

context.pluck(:name)

パラメーター:

  • *fields ( [ string | Symbol ]... )

    プルするフィールド。

次の値を返します。

  • 配列<Object> | Array[Array[Object<Object> ] ]

    プルされた値。



262
263
264
265
266
# ファイル 'lib/mongoid/contextual/memory.rb' の行262

デフォルト プル型(*フィールド)
  ドキュメント.map 行う |doc|
    plack_from_doc(doc, *フィールド)
  end
end

= ドキュメント =ドキュメント

条件のセレクターのデータベース内の 2 番目の document を取得します。

例:

2 番目のドキュメントを取得します。

context.second

次の値を返します。



384
385
386
# ファイル 'lib/mongoid/contextual/memory.rb' の行384

デフォルト 
  Bearer_load([ ドキュメント. ]).最初に
end

#秒です。 =ドキュメント

条件のセレクターのデータベース内の 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。

例:

2 番目のドキュメントを取得します。

context.second!

次の値を返します。

次の値が発生します。



398
399
400
# ファイル 'lib/mongoid/contextual/memory.rb' の行398

デフォルト 秒です。
   || resume_document_not_find_error
end

# second_to_last=last =======================================================

条件のセレクターのデータベース内の最後から 2 番目のdocumentを取得します。

例:

最後から 2 番目のドキュメントを取得します。

context.second_to_last

次の値を返します。



480
481
482
# ファイル 'lib/mongoid/contextual/memory.rb' の行480

デフォルト second_to_last
  Bearer_load([ ドキュメント.second_to_last ]).最初に
end

秒_to_last. =ドキュメント

条件のセレクターのデータベース内の最後から 2 番目の document を取得します。見つからない場合はエラーが発生します。

例:

最後から 2 番目のドキュメントを取得します。

context.second_to_last!

次の値を返します。

次の値が発生します。



494
495
496
# ファイル 'lib/mongoid/contextual/memory.rb' の行494

デフォルト second_to_last.
  second_to_last || resume_document_not_find_error
end

#skip (値)=メモリ

指定された数のドキュメントをスキップします。

例:

ドキュメントをスキップします。

context.skip(20)

パラメーター:

  • 価値 (整数)

    スキップするドキュメントの数。

次の値を返します。



336
337
338
339
# ファイル 'lib/mongoid/contextual/memory.rb' の行336

デフォルト スキップ(価値)
  自己.スキップ = 価値
  自己
end

#sort(values) ⇒ Memory

指定された 仕様でドキュメントをソートします。

例:

ドキュメントを並べ替えます。

context.sort(name: -1, title: 1)

パラメーター:

  • values ハッシュ

    フィールドと方向( 1 /- 1 )のペアとしての並べ替え値。

次の値を返します。



350
351
352
# ファイル 'lib/mongoid/contextual/memory.rb' の行350

デフォルト sort(values)
  in_place_sort(values) および 自己
end

#take(limit = nil) ⇒ Document

指定された数のドキュメントをデータベースから取得します。

例:

ドキュメントを受け取ります。

context.take

パラメーター:

  • limit (Integer | nil) (デフォルトはnil

    または nil を使用するドキュメントの数。

次の値を返します。



306
307
308
309
310
311
312
# ファイル 'lib/mongoid/contextual/memory.rb' の行306

デフォルト (limit = nil)
  場合 limit
    Bearer_load(ドキュメント.(limit))
  else
    Bearer_load([ ドキュメント.最初に ]).最初に
  end
end

#take!Document

データベースから指定された数のドキュメントを取得します。見つからない場合はエラーが発生します。

例:

ドキュメントを受け取ります。

context.take

次の値を返します。

次の値が発生します。



324
325
326
# ファイル 'lib/mongoid/contextual/memory.rb' の行324

デフォルト と一緒に使用されます
   || resume_document_not_find_error
end

# totaly (フィールド) =ハッシュ

メモリ内のフィールド値を合計します。

例:

メモリ内の値のカウントを取得します。

context.tally(:name)

パラメーター:

  • フィールド ( string | Symbol )

    集計するフィールド。

次の値を返します。

  • ハッシュ

    カウントのハッシュ。



290
291
292
293
294
295
296
# ファイル 'lib/mongoid/contextual/memory.rb' の行290

デフォルト (フィールド)
  ドキュメント.each_with_object({}) 行う |d, ac|
    v = retrieve_value_at_path(d, フィールド)
    ac[v] ||= 0
    ac[v] += 1
  end
end

3 つ目の =ドキュメント

条件のセレクターのデータベース内の 3 番目の document を取得します。

例:

3 番目のドキュメントを取得します。

context.third

次の値を返します。



408
409
410
# ファイル 'lib/mongoid/contextual/memory.rb' の行408

デフォルト 3 つ目の
  Bearer_load([ ドキュメント.3 つ目の ]).最初に
end

3 つ目の# =ドキュメント

条件のセレクターのデータベース内の 3 番目の document を取得します。見つからない場合はエラーが発生します。

例:

3 番目のドキュメントを取得します。

context.third!

次の値を返します。

次の値が発生します。



422
423
424
# ファイル 'lib/mongoid/contextual/memory.rb' の行422

デフォルト 3 つ目。
  3 つ目の || resume_document_not_find_error
end

# Third_to_last = timeドキュメント

条件のセレクターのデータベース内の最後から 3 番目のdocumentを取得します。

例:

最後から 3 番目のドキュメントを取得します。

context.third_to_last

次の値を返します。



504
505
506
# ファイル 'lib/mongoid/contextual/memory.rb' の行504

デフォルト Third_to_last
  Bearer_load([ ドキュメント.Third_to_last ]).最初に
end

# Third_to_last =ドキュメント

条件の セレクター のデータベース内の最後から 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。

例:

最後から 3 番目のドキュメントを取得します。

context.third_to_last!

次の値を返します。

次の値が発生します。



518
519
520
# ファイル 'lib/mongoid/contextual/memory.rb' の行518

デフォルト Third_to_last.
  Third_to_last || resume_document_not_find_error
end

#update(attributes = nil) ⇒ nil | false

最初に一致するドキュメントを不可分的に更新します。

例:

一致するドキュメントをアップデートします。

context.update(name: "Smiths")

パラメーター:

  • 属性 ハッシュ (デフォルトはnil

    ドキュメントの新しい属性。

次の値を返します。

  • nil | false

    属性が指定されていない場合は false。



362
363
364
# ファイル 'lib/mongoid/contextual/memory.rb' の行362

デフォルト update(属性 = nil)
  update_documents(属性, [ 最初に ])
end

#update_all(attributes = nil) ⇒ nil | false

一致するすべてのドキュメントを不可分的に更新します。

例:

一致するすべてのドキュメントをアップデートします。

context.update_all(name: "Smiths")

パラメーター:

  • 属性 ハッシュ (デフォルトはnil

    各ドキュメントの新しい属性。

次の値を返します。

  • nil | false

    属性が指定されていない場合は false。



374
375
376
# ファイル 'lib/mongoid/contextual/memory.rb' の行374

デフォルト update_all(属性 = nil)
  update_documents(属性, エントリ)
end