クラス: Mongoid::Contextual::Mongo

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
列挙可能、関連付け::EagerLoadableアトミック集計可能::Mongoクエリ可能
定義:
lib/mongoid/contextual/mongo.rb
lib/mongoid/contextual/mongo/documents_loader.rb

Overview

データベースに保持され、アプリケーション メモリにロードされていないドキュメントに対して、一括クエリと永続化操作を実行するために使用されるコンテキスト オブジェクト。

名前空間で定義済み

クラス: DocumentsLoader

定数の概要の削減

OPTIONS =

オプション 定数。

[ :hint,
  :limit,
  :skip,
  :sort,
  :batch_size,
  :max_scan,
  :max_time_ms,
  :snapshot,
  :comment,
  :read,
  : cursor_type,
  :collation
].freeze

アトミックに含まれる定数

Atomic::UPDATES

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

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

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

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

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

#blank?

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

#EAger_load# Dataer_loadable か。#preload

アトミックに含まれるメソッド

#add_atomic_pull , #add_atomic_unset , #atomic_array_add_to_sets , #atomic_array_pulls , #atomic_array_pushes , #atomic_attribute_name , #atomic_delete_modifier , #atomic_insert_modifier , #atomic_path , #atomic_paths , #atomic_position , #atomic_pulls , #atomic_pushes , #atomic_sets , #atomic_unsets , #atomic_updates , #delayed_atomic_pulls 、遅延_アトミック_セット 、遅延_アトミック_unsets 、#フラグ_as_destricted#フラグメント_デプロイs# process_flugger_delete s

Aggregate::Mongoに含まれるメソッド

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

コンストラクターの詳細

#Initialize (条件) mongo

新しいmongoコンテキストを作成します。 これにより、操作は基礎のドライバーに委任されます。

例:

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

Mongo.new(criteria)

パラメーター:

  • 条件 基準

    基準。



296
297
298
299
300
301
302
# ファイル 'lib/mongoid/contextual/mongo.rb' 行296

デフォルト 初期化(条件)
  @criteria, @klass = 条件, 条件.klass
  @collection = @klass.コレクション
  条件.送信(:merge_type_Selection)
  @view = コレクション.find(条件.セレクター, セッション: _session)
  apply_options
end

インスタンス属性の詳細

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

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



57
58
59
# ファイル 'lib/mongoid/contextual/mongo.rb' 行57

デフォルト document_loader
  @documents_loader
end

#ビュー=ハッシュ(読み取り専用)

基準について explain を実行します。

例:

基準を説明します。

Band.where(name: "Depeche Mode").explain

パラメーター:

  • options ハッシュ

    カスタマイズ可能なオプション( Mongo::Collection::View::Explainable を参照)

次の値を返します。

  • ハッシュ

    explain の結果。



45
46
47
# ファイル 'lib/mongoid/contextual/mongo.rb' 行45

デフォルト 表示
  @view
end

# view mongoコレクションビュー。 (Mongocollectionview.) =オブジェクト(読み取り専用)



45
# ファイル 'lib/mongoid/contextual/mongo.rb' 行45

attr_reader :view

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

カウント(オプション = {{}, &stream) =整数

クエリに一致するドキュメントの数を取得します。

例:

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

context.count

指定されたオプションを持つドキュメントの数を取得します。

context.count(limit: 1)

指定されたブロックが true である場合のカウントを取得します。

context.count do |doc|
  doc.likes > 1
end

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    スキップ や 制限 などのオプションはカウントに含めることができます。

次の値を返します。

  • (整数)

    一致の数。



76
77
78
79
80
81
82
83
84
85
86
# ファイル 'lib/mongoid/contextual/mongo.rb' 行76

デフォルト count(options = {}, &ブロック)
  return スーパー(&ブロック) 場合 ブロック_指定

  場合 valid_for_count_documents
    表示.count_documents(options)
  else
    # TODO: 非推奨の for_js API を削除するときに、これを削除します。
    https://JIRA.mongodb.org/browse/MONGOID-{0 5681
    表示.count(options)
  end
end

delete = nil別名: #delete_all

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

例:

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

context.delete

次の値を返します。

  • (nil)

    Nil.



117
118
119
# ファイル 'lib/mongoid/contextual/mongo.rb' 行117

デフォルト 削除
  表示.delete_many.delete_count
end

# delete = nil 別名 : delete_all

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

例:

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

context.destroy

次の値を返します。

  • (nil)

    Nil.



128
129
130
131
132
133
134
# ファイル 'lib/mongoid/contextual/mongo.rb' 行128

デフォルト 破棄する
  .inject(0) 行う |count, doc|
    doc.破棄する
    count += 1 場合 acknowledged_write?
    count
  end
end

distinct<Object>

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

例:

個別の値を取得します。

context.distinct(:name)

パラメーター:

  • フィールド ( string | Symbol )

    フィールドの名前。

次の値を返します。

  • 配列<Object>

    フィールドの個別の値。



145
146
147
148
149
150
151
152
# ファイル 'lib/mongoid/contextual/mongo.rb' 行145

デフォルト distinct(フィールド)
  name = klass.refine_localized_field_names(フィールド)

  表示.distinct(name).map 行う |価値|
    is_translation = " #{ name } _translations " == フィールド.to_s
    retention_dmongoize(name, 価値, is_translation)
  end
end

( & ブロック) =列挙型

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

例:

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

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

次の値を返します。

  • 列挙型

    列挙型。



163
164
165
166
167
168
169
170
171
172
# ファイル 'lib/mongoid/contextual/mongo.rb' 行163

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

Estimated_count (オプション = {})=整数

クエリに一致するドキュメントの推定数を取得します。

countとは異なり、estimated_count はブロックを必要としないため、カウントは のように Enumerable で従来(ブロックあり)ではないためです。

例:

一致するドキュメントの推定数を取得します。

context.estimated_count

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    カウントに含める maxTimeMS などのオプション。

次の値を返します。

  • (整数)

    一致の数。



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

デフォルト Estimated_count(options = {})
  ただし、 自己.条件.セレクター.空の場合
    場合 klass.default_scoping?
      発生 Mongoid::Errors::Invalid EstimatedCountScoping.新着情報(自己.klass)
    else
      発生 Mongoid::Errors::Invalid EstimatedCount Criteria.新着情報(自己.klass)
    end
  end
  表示.Estimated_document_count(options)
end

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

注:

mongoはカウントされた b ツリー インデックスを使用していないため、ここではカウントは使用されません。

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

例:

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

context.exists?

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

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

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

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

パラメーター:

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

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

次の値を返します。

  • true | false

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



193
194
195
196
197
198
199
200
201
# ファイル 'lib/mongoid/contextual/mongo.rb' 行193

デフォルト 存在するかどうか(id_or_条件 = :none)
  return false 場合 自己.表示.limit == 0
  ケース id_or_条件
  次の場合: :none 次に !!(表示.プロジェクション(_id: 1).limit(1).最初に)
  次の場合: nil, false 次に false
  次の場合: ハッシュ 次に mongo.新着情報(条件.WHERE(id_or_条件)).存在するかどうか
  else mongo.新着情報(条件.WHERE(_id: id_or_条件)).存在するかどうか
  end
end

5 や5ドキュメント| nil

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

例:

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

context.fifth

次の値を返します。

  • (Document | nil)

    5 番目のドキュメント、または見つからない場合は nil 。



725
726
727
# ファイル 'lib/mongoid/contextual/mongo.rb' 行725

デフォルト 50
  retrieve_nth(4)
end

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

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

例:

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

context.fifth!

次の値を返します。

次の値が発生します。



739
740
741
# ファイル 'lib/mongoid/contextual/mongo.rb' 行739

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

# find_first =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ソートを適用せずに最初の結果を返す



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

デフォルト find_first
  場合 raw_doc = 表示.最初に
    doc = 工場.from_db(klass, raw_doc, 条件)
    Bearer_load([doc]).最初に
  end
end

# find_one_and_delete = find_one_and_delete = find_one_and_delete =ドキュメント

MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。 これにより、見つかったドキュメントが削除されます。

例:

コマンドを実行します。

context.find_one_and_delete

次の値を返します。



250
251
252
253
254
# ファイル 'lib/mongoid/contextual/mongo.rb' 行250

デフォルト find_one_and_delete
  場合 doc = 表示.find_one_and_delete
    工場.from_db(klass, doc)
  end
end

# find_one_and_replace (置換、オプション = {}) =ドキュメント

MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。

例:

コマンドを実行します。

context.find_one_and_update({ likes: 1 })

パラメーター:

  • replacement ハッシュ

    置換。

  • options ハッシュ (デフォルトは{}です)

    コマンド オプション。

オプション ハッシュ( options ):

  • :return_document : 前 | : 後

    更新前または更新後に更新されたドキュメントを返します。

  • :upsert true | false

    ドキュメントが存在しない場合は作成します。

次の値を返します。



237
238
239
240
241
# ファイル 'lib/mongoid/contextual/mongo.rb' 行237

デフォルト find_one_and_replace(replacement, options = {})
  場合 doc = 表示.find_one_and_replace(replacement, options)
    工場.from_db(klass, doc)
  end
end

#find_one_and_update(update, options = {}) ⇒ Document

MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。

例:

コマンドを実行します。

context.find_one_and_update({ "$inc" => { likes: 1 }})

パラメーター:

  • update ハッシュ

    の更新。

  • options ハッシュ (デフォルトは{}です)

    コマンド オプション。

オプション ハッシュ( options ):

  • :return_document : 前 | : 後

    更新前または更新後に更新されたドキュメントを返します。

  • :upsert true | false

    ドキュメントが存在しない場合は作成します。

次の値を返します。



217
218
219
220
221
# ファイル 'lib/mongoid/contextual/mongo.rb' 行217

デフォルト find_one_and_update(update, options = {})
  場合 doc = 表示.find_one_and_update(update, options)
    工場.from_db(klass, doc)
  end
end

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

注:

条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用し、条件にソートが定義されていない場合に、予期しないパフォーマンスの低下が発生した場合は、代わりに使用してください。 では順序が保証されないことに注意してください。

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

例:

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

context.first

パラメーター:

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

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

次の値を返します。

  • (Document | nil)

    最初のドキュメント、または見つからない場合は nil 。



576
577
578
579
580
581
582
# ファイル 'lib/mongoid/contextual/mongo.rb' 行576

デフォルト 最初に(limit = nil)
  場合 limit.nil?
    retrieve_nth(0)
  else
    retrieve_nth_with_limit(0, limit)
  end
end

#first!Document

注:

条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初に使用すると、予期しないパフォーマンスが低下した場合があります。 または 最後に指定します。条件にソートが定義されていない場合は、 が使用されます 。 ください。 が に注意してください。 は順序を保証しません。

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

例:

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

context.first!

次の値を返します。

次の値が発生します。



601
602
603
# ファイル 'lib/mongoid/contextual/mongo.rb' 行601

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

4 番目の =ドキュメント| nil

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

例:

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

context.fourth

次の値を返します。

  • (Document | nil)

    4 番目のドキュメント、または見つからない場合は nil 。



701
702
703
# ファイル 'lib/mongoid/contextual/mongo.rb' 行701

デフォルト 4 つ
  retrieve_nth(3)
end

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

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

例:

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

context.fourth!

次の値を返します。

次の値が発生します。



715
716
717
# ファイル 'lib/mongoid/contextual/mongo.rb' 行715

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

# geo_near (座標) = GeoNear

非推奨。

データベースに対して $geoNear コマンドを実行します。

例:

10 、 10に近いドキュメントを検索します。

context.geo_near([ 10, 10 ])

球面距離で を検索します。

context.geo_near([ 10, 10 ]).spherical

最大距離で検索します。

context.geo_near([ 10, 10 ]).max_distance(0.5)

距離乗数を指定します。

context.geo_near([ 10, 10 ]).distance_multiplier(1133)

パラメーター:

  • coordinates <Float>配列要素

    座標。

次の値を返します。

  • GeoNear

    GeoNear コマンド。



285
286
287
# ファイル 'lib/mongoid/contextual/mongo.rb' 行285

デフォルト geo_near(coordinates)
  geoNear.新着情報(コレクション, 条件, coordinates)
end

#last(limit = nil) ⇒ Document | nil

注:

条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用し、条件にソートが定義されていない場合に、予期しないパフォーマンスの低下が発生した場合は、代わりに使用してください。 では順序が保証されないことに注意してください。

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

例:

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

context.last

パラメーター:

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

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

次の値を返します。

  • (Document | nil)

    最後のドキュメント、または見つからない場合は nil 。



619
620
621
622
623
624
625
# ファイル 'lib/mongoid/contextual/mongo.rb' 行619

デフォルト last(limit = nil)
  場合 limit.nil?
    retrieve_nth_to_last(0)
  else
    retrieve_nth_to_last_with_limit(0, limit)
  end
end

#last!Document

注:

条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初に使用すると、予期しないパフォーマンスが低下した場合があります。 または 最後に指定します。条件にソートが定義されていない場合は、 が使用されます 。 ください。 が に注意してください。 は順序を保証しません。

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

例:

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

context.last!

次の値を返します。

次の値が発生します。



643
644
645
# ファイル 'lib/mongoid/contextual/mongo.rb' 行643

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

長さ整数別名:サイズ

データベース内のクエリ セレクターに一致するドキュメントの数を返します。

例:

長さを取得します。

context.length

次の値を返します。

  • (整数)

    ドキュメントの数。



313
314
315
# ファイル 'lib/mongoid/contextual/mongo.rb' 行313

デフォルト Length
  自己.count
end

制限(値) mongo

データベースから返されるドキュメントの数を制限します。

例:

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

context.limit(20)

パラメーター:

  • 価値 (整数)

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

次の値を返します。

  • mongo

    コンテキスト。



326
327
328
# ファイル 'lib/mongoid/contextual/mongo.rb' 行326

デフォルト limit(価値)
  @view = 表示.limit(価値) および 自己
end

# load_async =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

コンテキストのドキュメントを読み込むタスクをスケジュールします。

Mongoid の構成に応じて、スケジュールされたタスクは呼び出し元のスレッドですぐに実行されることも、非同期実行用にスケジュールされることもできます。



802
803
804
# ファイル 'lib/mongoid/contextual/mongo.rb' 行802

デフォルト load_async
  @documents_loader ||= DocumentsLoader.新着情報(表示, klass, 条件)
end

# map_reduce (map, reduce)= mapReduce

コンテキストから map/reduce 操作を開始します。

例:

map-reduce を開始します。

context.map_reduce(map, reduce)

パラメーター:

  • map ( string )

    map JavaScript関数。

  • reduce ( string )

    reduce JavaScript関数。

次の値を返します。

  • MapReduce

    map/reduce 遅延ラッパー。



339
340
341
# ファイル 'lib/mongoid/contextual/mongo.rb' 行339

デフォルト map_reduce(map, reduce)
  mapReduce.新着情報(コレクション, 条件, map, reduce)
end

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

データベースから単一のフィールド値を選択します。

例:

フィールドを選択します。

context.pick(:_id)

パラメーター:

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

    選択するフィールド。

次の値を返します。

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

    選択された値。



387
388
389
# ファイル 'lib/mongoid/contextual/mongo.rb' 行387

デフォルト 選択(*フィールド)
  limit(1).プル型(*フィールド).最初に
end

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

データベースからフィールド値を取得します。 コンテキストのデータベースで見つかったドキュメントごとに 1 つの結果を返します。 結果は、Mongoid フィールド型に従って正規化されます。 結果には重複値と nil 値が含まれる場合があることに注意してください。

例:

フィールドをプルします。

context.pluck(:_id)

パラメーター:

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

    プルするフィールド。これには、ドット表記を使用したネストされたフィールドが含まれる場合があります。

次の値を返します。

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

    プルされた値。 *fields 引数に単一の値が含まれている場合、配列内の各結果は単一の値になります。 それ以外の場合、配列内の各結果は値の配列になります。



359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
# ファイル 'lib/mongoid/contextual/mongo.rb' 行359

デフォルト プル型(*フィールド)
  複数のフィールドを同じフィールド名にマッピングできます。 たとえば、プラグイン
  フィールドとその _translations フィールドは、 データベース内の同じフィールドにマップされます。
  このため、リクエストされたフィールドを追跡する必要があります。
  Normalized_field_names = []
  Normalized_select = フィールド.inject({}) 行う |ハッシュ, f|
    db_fn = klass.database_field_name(f)
    Normalized_field_names.プッシュ(db_fn)
    ハッシュ[klass.refine_localized_field_names(f)] = true
    ハッシュ
  end

  表示.プロジェクション(Normalized_select).reduce([]) 行う |プルド, doc|
    values = Normalized_field_names.map 行う |n|
      insert_value(doc, n)
    end
    プルド < (values.サイズ == 1 ? values.最初に : values)
  end
end

=ドキュメント| nil

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

例:

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

context.second

次の値を返します。

  • (Document | nil)

    2 番目のドキュメント、または見つからない場合は nil 。



653
654
655
# ファイル 'lib/mongoid/contextual/mongo.rb' 行653

デフォルト 
  retrieve_nth(1)
end

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

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

例:

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

context.second!

次の値を返します。

次の値が発生します。



667
668
669
# ファイル 'lib/mongoid/contextual/mongo.rb' 行667

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

#second_to_last =ドキュメント| nil

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

スローされます。

例:

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

context.second_to_last

次の値を返します。

  • (Document | nil)

    最後から 2 番目のドキュメント、または存在しない場合は nil



751
752
753
# ファイル 'lib/mongoid/contextual/mongo.rb' 行751

デフォルト second_to_last
  retrieve_nth_to_last(1)
end

秒_to_last. =ドキュメント

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

例:

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

context.second_to_last!

次の値を返します。

次の値が発生します。



765
766
767
# ファイル 'lib/mongoid/contextual/mongo.rb' 行765

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

#skip (値) mongo

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

例:

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

context.skip(20)

パラメーター:

  • 価値 (整数)

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

次の値を返します。

  • mongo

    コンテキスト。



506
507
508
# ファイル 'lib/mongoid/contextual/mongo.rb' 行506

デフォルト スキップ(価値)
  @view = 表示.スキップ(価値) および 自己
end

#sort(values = nil, &block) ⇒ Mongo

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

例:

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

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

パラメーター:

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

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

次の値を返します。

  • mongo

    コンテキスト。



519
520
521
522
523
524
525
526
527
528
# ファイル 'lib/mongoid/contextual/mongo.rb' 行519

デフォルト sort(values = nil, &ブロック)
  場合 ブロック_指定
    スーパー(&ブロック)
  else
    条件を 更新
    @criteria = 条件.order_by(values)
    apply_option(:sort)
    自己
  end
end

#take(limit = nil) ⇒ Document | Array<Document>

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

例:

10ドキュメントを取得

context.take(10)

パラメーター:

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

    または nil を返すドキュメントの数。

次の値を返します。

  • (Document | Array<Document>)

    ドキュメントのリスト、または値が指定されていない場合は 1 つのドキュメント。



400
401
402
403
404
405
406
407
408
# ファイル 'lib/mongoid/contextual/mongo.rb' 行400

デフォルト (limit = nil)
  場合 limit
    limit(limit).to_a
  else
    最初に _ を実行して、Mongo#first メソッドは使用されなくなり、
    結果はソートされません。
    limit(1).to_a.最初に
  end
end

#take!Document

データベースから 1 つのドキュメントを取得し、ドキュメントがない場合はエラーが発生します。

例:

ドキュメントを取る

context.take!

次の値を返します。

次の値が発生します。



419
420
421
422
423
424
425
426
427
# ファイル 'lib/mongoid/contextual/mongo.rb' 行419

デフォルト と一緒に使用されます
  最初に _ を実行して、Mongo#first メソッドは使用されなくなり、
  結果はソートされません。
  場合 fst = limit(1).to_a.最初に
    fst
  else
    発生 Errors::DocumentNotFound.新着情報(klass, nil, nil)
  end
end

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

単一のフィールドの値のカウントのハッシュを取得します。 たとえば、次のドキュメントが データベースにあるとします。

{ _id: 1, age: 21 }
{ _id: 2, age: 21 }
{ _id: 3, age: 22 }

Model.tally("age")

次の結果が得られます。

{ 21 => 2, 22 => 1 }

配列または embedded_many 関連付け内のフィールドを集計する場合:

{ _id: 1, array: [ { x: 1 }, { x: 2 } ] }
{ _id: 2, array: [ { x: 1 }, { x: 2 } ] }
{ _id: 3, array: [ { x: 1 }, { x: 3 } ] }

Model.tally("array.x")

結果として得られるハッシュのキーは配列です。

{ [ 1, 2 ] => 2, [ 1, 3 ] => 1 }

ハッシュの配列内の要素を集計し、かつキーがハッシュの一部に存在しない場合、結果のハッシュには nil キーが含まれないことに注意してください。

{ _id: 1, array: [ { x: 1 }, { x: 2 }, { y: 3 } ] }

Model.tally("array.x")
# => { [ 1, 2 ] => 1 }

パラメーター:

  • フィールド ( string | Symbol )

    フィールド名。

次の値を返します。

  • ハッシュ

    カウントのハッシュ。



466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
# ファイル 'lib/mongoid/contextual/mongo.rb' 行466

デフォルト (フィールド)
  name = klass.refine_localized_field_names(フィールド)

  fld = klass.走査_関連付け_ツリー(name)
  パイプライン = [ { " $group " => { _id: " $ #{ name } ", count: { " $sum ": 1 } } } } ]パイプライン unshift  " $match " =表示> フィルター ビュー 除く 。 フィルター 。 空白の場合コレクション集計パイプライン  reduce  { }  do |合計,ドキュメント| is_translation = " #{ name } _translations " == field . to_s
    val = doc [ " _id " ] key =場合 is_a? 配列 map do | v | mongoize_with_field  fld  v  is_translation エンドポイントでは、mongoize_with_fieldfld  val  is_translation エンドポイントになりました。タリー ハッシュにキーが既に存在する時間は、値がデータベースに異なる方法で保存されている場合のみです。同じ値。この状況が発生するタイミングは、ローカル化されたフィールドを使用している場合です。サーバー クエリでは、異なる言語で他の 値を持つハッシュを グループ化することは ありません が、 # デーモン化された値は現在のロケールでの翻訳だけであり、これらは等しくないハッシュの複数にわたって同じになる場合があります。    合計[キー] |= 0合計[キー] +=ドキュメント[ "カウント" ]合計終了終了

3 つ目の =ドキュメント| nil

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

例:

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

context.third

次の値を返します。

  • (Document | nil)

    3 番目のドキュメント、または見つからない場合は nil 。



677
678
679
# ファイル 'lib/mongoid/contextual/mongo.rb' 行677

デフォルト 3 つ目の
  retrieve_nth(2)
end

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

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

例:

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

context.third!

次の値を返します。

次の値が発生します。



691
692
693
# ファイル 'lib/mongoid/contextual/mongo.rb' 行691

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

# Third_to_last =ドキュメント| nil

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

スローされます。

例:

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

context.third_to_last

次の値を返します。

  • (Document | nil)

    最後から 3 番目のドキュメント、または存在しない場合は nil



777
778
779
# ファイル 'lib/mongoid/contextual/mongo.rb' 行777

デフォルト Third_to_last
  retrieve_nth_to_last(2)
end

# Third_to_last =ドキュメント

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

例:

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

context.third_to_last!

次の値を返します。

次の値が発生します。



791
792
793
# ファイル 'lib/mongoid/contextual/mongo.rb' 行791

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

#update(attributes = nil, opts = {}) ⇒ nil | false

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

例:

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

context.update({ "$set" => { name: "Smiths" }})

パラメーター:

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

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

  • ops ハッシュ (デフォルトは{}です)

    更新操作オプション。

オプション ハッシュ( opts ):

  • :array_filters 配列

    アップデートを適用する配列要素を指定するフィルターのセット。

次の値を返します。

  • nil | false

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



542
543
544
# ファイル 'lib/mongoid/contextual/mongo.rb' 行542

デフォルト update(属性 = nil, ops = {})
  update_documents(属性, :update_one, ops)
end

#update_all(attributes = nil, opts = {}) ⇒ nil | false

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

例:

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

context.update_all({ "$set" => { name: "Smiths" }})

パラメーター:

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

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

  • ops ハッシュ (デフォルトは{}です)

    更新操作オプション。

オプション ハッシュ( opts ):

  • :array_filters 配列

    アップデートを適用する配列要素を指定するフィルターのセット。

次の値を返します。

  • nil | false

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



558
559
560
# ファイル 'lib/mongoid/contextual/mongo.rb' 行558

デフォルト update_all(属性 = nil, ops = {})
  update_documents(属性, :update_many, ops)
end