クラス: Mongoid::Contextual::Memory

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

Overview

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

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

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

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

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

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

位置的に

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

#blank?

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

#EAger_load# Dataer_loadable か。#preload

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

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

コンストラクターの詳細

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

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

例:

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

Memory.new(criteria)

パラメーター:

  • 条件 基準

    基準。



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

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

インスタンス属性の詳細

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

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



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

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

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



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

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

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

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



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

デフォルト path
  @path
end

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



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

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

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

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



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

デフォルト ルート
  @root
end

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



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

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

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

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



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

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

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



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

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

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

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

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

例:

等価性を確認します。

context == []

パラメーター:

  • その他 配列

    その他の配列。

次の値を返します。

  • true | false

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



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

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

delete = nil別名: #delete_all

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

例:

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

context.delete

次の値を返します。

  • (nil)

    Nil.



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

デフォルト 削除
  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.



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

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

distinct<Object>

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

例:

個別の値を取得します。

context.distinct(:name)

パラメーター:

  • フィールド ( string | Symbol )

    フィールドの名前。

次の値を返します。

  • 配列<Object>

    フィールドの個別の値。



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

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

#列挙型

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

例:

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

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

次の値を返します。

  • 列挙型

    列挙型。



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

デフォルト 
  場合 ブロック_指定
    document_for_iteration. 行う |doc|
      ノードの数(doc)
    end
    自己
  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 。



126
127
128
129
130
131
132
133
# ファイル 'lib/mongoid/contextual/memory.rb' の行126

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

5 分の 1 =ドキュメント

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

例:

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

context.fifth

次の値を返します。



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

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

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

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

例:

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

context.fifth!

次の値を返します。

次の値が発生します。



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

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

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

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

例:

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

context.first

パラメーター:

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

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

次の値を返します。



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

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

#first!Document

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

例:

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

context.first!

次の値を返します。

次の値が発生します。



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

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

4 番目の =ドキュメント

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

例:

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

context.fourth

次の値を返します。



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

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

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

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

例:

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

context.fourth!

次の値を返します。

次の値が発生します。



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

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

#inc(incs) ⇒ Enumerator

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

例:

増分を実行します。

context.inc(likes: 10)

パラメーター:

  • incs ハッシュ

    の操作です。

次の値を返します。

  • 列挙型

    列挙型。



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

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

#last(limit = nil) ⇒ Document

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

例:

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

context.last

パラメーター:

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

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

次の値を返します。



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

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

#last!Document

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

例:

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

context.last!

次の値を返します。

次の値が発生します。



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

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

長さ整数別名:サイズ

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

例:

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

context.length

次の値を返します。

  • (整数)

    一致する長。



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

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

#制限(値) ~メモリ

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

例:

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

context.limit(20)

パラメーター:

  • 価値 (整数)

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

次の値を返します。



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

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

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

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

例:

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

context.pick(:name)

パラメーター:

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

    選択するフィールド。

次の値を返します。

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

    選択された値。



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

デフォルト 選択(*フィールド)
  場合 doc = ドキュメント.最初に
    plack_from_doc(doc, *フィールド)
  end
end

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

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

例:

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

context.pluck(:name)

パラメーター:

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

    プルするフィールド。

次の値を返します。

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

    プルされた値。



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

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

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

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

例:

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

context.second

次の値を返します。



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

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

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

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

例:

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

context.second!

次の値を返します。

次の値が発生します。



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

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

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

条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。

例:

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

context.second_to_last

次の値を返します。



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

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

秒_to_last. =ドキュメント

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

例:

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

context.second_to_last!

次の値を返します。

次の値が発生します。



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

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

#skip (値)=メモリ

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

例:

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

context.skip(20)

パラメーター:

  • 価値 (整数)

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

次の値を返します。



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

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

#sort(values) ⇒ Memory

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

例:

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

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

パラメーター:

  • values ハッシュ

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

次の値を返します。



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

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

#take(limit = nil) ⇒ Document

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

例:

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

context.take

パラメーター:

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

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

次の値を返します。



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

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

#take!Document

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

例:

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

context.take

次の値を返します。

次の値が発生します。



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

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

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

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

例:

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

context.tally(:name)

パラメーター:

  • フィールド ( string | Symbol )

    集計するフィールド。

次の値を返します。

  • ハッシュ

    カウントのハッシュ。



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

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

3 つ目の =ドキュメント

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

例:

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

context.third

次の値を返します。



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

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

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

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

例:

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

context.third!

次の値を返します。

次の値が発生します。



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

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

# Third_to_last = timeドキュメント

条件のセレクターのデータベース内の最後から 3 番目のドキュメントを取得します。

例:

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

context.third_to_last

次の値を返します。



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

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

# Third_to_last =ドキュメント

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

例:

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

context.third_to_last!

次の値を返します。

次の値が発生します。



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

デフォルト 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。



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

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

#update_all(attributes = nil) ⇒ nil | false

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

例:

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

context.update_all(name: "Smiths")

パラメーター:

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

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

次の値を返します。

  • nil | false

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



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

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