クラス: Mongoid::Contextual::Mongo
- 継承:
-
オブジェクト
- オブジェクト
- 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
アトミックに含まれる定数
インスタンス属性の概要を折りたたむ
-
#Documents_loader = オブジェクト
readOnly
属性のドキュメント_ローダーの値を返します。
-
#view ⇒ Hash
readOnly
基準について explain を実行します。
- # view mongoコレクションビュー。 (Mongocollectionview.) = オブジェクト readOnly
クエリ可能な に含まれる属性
コレクション、コレクション クエリ対象のコレクションです。 、 #criteria 、 #criteria コンテキストの基準。 、 #klas 、 #klass 基準の klas。
インスタンス メソッドの概要を折りたたむ
-
カウント(オプション = {{}, &stream) = 整数
クエリに一致するドキュメントの数を取得します。
-
#delete = nil (また: #delete_all)
データベース内のセレクターに一致するすべてのドキュメントを削除します。
-
#破棄= nil (また: #delete_all)
データベース内のセレクターに一致するすべてのドキュメントを破棄します。
-
distinct<Object>
指定されたフィールドの db で個別の値を取得します。
-
各( & ブロック) = 列挙型
コンテキストを反復処理します。
-
Estimated_count (オプション = {})=整数
クエリに一致するドキュメントの推定数を取得します。
-
が存在する場合(id_or_条件 = :none) = true | false
コンテキストにドキュメントが存在するかどうかを確認します。
-
5 や5ドキュメント | nil
条件のセレクターのデータベース内の 5 番目のドキュメントを取得します。
-
# 5 番目の。 = ドキュメント
条件のセレクターのデータベース内の 5 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
-
# find_first =オブジェクト
private
ソートを適用せずに最初の結果を返します。
-
# find_one_and_delete = find_one_and_delete = find_one_and_delete =ドキュメント
MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。
-
# find_one_and_replace (置換、オプション = {}) = ドキュメント
MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。
-
#find_one_and_update(update, options = {}) ⇒ Document
MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。
-
最初に#(制限 = nil)= ドキュメント | nil (または 1)
条件のセレクターのデータベース内の最初のドキュメントを取得します。
-
#first! ⇒ Document
条件のセレクターのデータベース内の最初のドキュメントを取得します。見つからない場合はエラーが発生します。
-
4 番目の = ドキュメント | nil
条件のセレクターのデータベース内の 4 番目のドキュメントを取得します。
-
4 番目の。 = ドキュメント
条件のセレクターの データベース内の 4 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
-
#Initialize (条件) mongo
コンストラクター
新しいmongoコンテキストを作成します。
-
#last(limit = nil) ⇒ Document | nil
条件のセレクターのデータベース内の最後のドキュメントを取得します。
-
#last! ⇒ Document
条件のセレクターのデータベース内の最後のドキュメントを取得します。見つからない場合はエラーが発生します。
-
や では整数(また : サイズ)
データベース内のクエリ セレクターに一致するドキュメントの数を返します。
-
制限(値) mongo
データベースから返されるドキュメントの数を制限します。
-
# load_async =オブジェクト
private
コンテキストのドキュメントを読み込むタスクをスケジュールします。
-
# map_reduce (map, reduce)= mapReduce
コンテキストから map/reduce 操作を開始します。
-
# 選択 (* フィールド)= オブジェクト | Array[Object]<Object>
データベースから単一のフィールド値を選択します。
-
プル型(* フィールド)= 配列= オブジェクト=================================<Object> 配列未満<Object>
データベースからフィールド値を取得します。
-
秒= ドキュメント | nil
条件のセレクターのデータベース内の 2 番目のドキュメントを取得します。
-
#秒です。 = ドキュメント
条件のセレクターのデータベース内の 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
-
#second_to_last =ドキュメント | nil
条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。
-
秒_to_last. = ドキュメント
条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
-
#skip (値) mongo
指定された数のドキュメントをスキップします。
-
#sort(values = nil, &block) ⇒ Mongo
指定された 仕様でドキュメントをソートします。
-
#take(limit = nil) ⇒ Document | Array<Document>
指定された数のドキュメントをデータベースから取得します。
-
#take! ⇒ Document
データベースから 1 つのドキュメントを取得し、ドキュメントがない場合はエラーが発生します。
-
# totaly (フィールド) = ハッシュ
単一のフィールドの値のカウントのハッシュを取得します。
-
3 つ目の = ドキュメント | nil
条件のセレクターのデータベース内の 3 番目のドキュメントを取得します。
-
3 つ目の# = ドキュメント
条件のセレクターのデータベース内の 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
-
# Third_to_last =ドキュメント | nil
条件のセレクターのデータベース内の最後から 3 番目のドキュメントを取得します。
-
# Third_to_last = ドキュメント
条件の セレクター のデータベース内の最後から 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
-
#update(attributes = nil, opts = {}) ⇒ nil | false
最初に一致するドキュメントを不可分的に更新します。
-
#update_all(attributes = nil, opts = {}) ⇒ nil | false
一致するすべてのドキュメントを不可分的に更新します。
クエリ可能な に含まれるメソッド
関連::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コンテキストを作成します。 これにより、操作は基礎のドライバーに委任されます。
270 271 272 273 274 275 276 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行270 デフォルト 初期化(条件) @criteria, @klass = 条件, 条件.klass @collection = @klass.コレクション 条件.送信(:merge_type_Selection) @view = コレクション.find(条件.セレクター, セッション: _session) end |
インスタンス属性の詳細
# document_loader ~オブジェクト(読み取り専用)
属性のドキュメント_ローダーの値を返します。
54 55 56 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行54 デフォルト document_loader @documents_loader end |
#ビュー=ハッシュ(読み取り専用)
基準について explain を実行します。
42 43 44 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行42 デフォルト 表示 @view end |
# view mongoコレクションビュー。 (Mongocollectionview.) =オブジェクト(読み取り専用)
42 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行42 attr_reader :view |
インスタンス メソッドの詳細
カウント(オプション = {{}, &stream) =整数
クエリに一致するドキュメントの数を取得します。
73 74 75 76 77 78 79 80 81 82 83 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行73 デフォルト count( = {}, &ブロック) return スーパー(&ブロック) 場合 ブロック_指定 場合 valid_for_count_documents 表示.count_documents() else # TODO: 非推奨の for_js API を削除するときに、これを削除します。 https://JIRA.mongodb.org/browse/MONGOID-{0 5681 表示.count() end end |
delete = nil別名: #delete_all
データベース内のセレクターに一致するすべてのドキュメントを削除します。
114 115 116 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行114 デフォルト 削除 表示.delete_many.delete_count end |
# delete = nil 別名 : delete_all
データベース内のセレクターに一致するすべてのドキュメントを破棄します。
125 126 127 128 129 130 131 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行125 デフォルト 破棄する 各.inject(0) 行う |count, doc| doc.破棄する count += 1 場合 acknowledged_write? count end end |
distinct<Object>
指定されたフィールドの db で個別の値を取得します。
142 143 144 145 146 147 148 149 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行142 デフォルト distinct(フィールド) name = klass.refine_localized_field_names(フィールド) 表示.distinct(name).map 行う |価値| is_translation = " #{ name } _translations " == フィールド.to_s retention_dmongoize(name, 価値, is_translation) end end |
各( & ブロック) =列挙型
コンテキストを反復処理します。 ブロックが提供された場合、 はそれぞれの Mongoid ドキュメントに降格し、それ以外の場合は列挙を返します。
160 161 162 163 164 165 166 167 168 169 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行160 デフォルト 各(&ブロック) 場合 ブロック_指定 document_for_iteration.各 行う |doc| fail_document(doc, &ブロック) end 自己 else to_enum end end |
Estimated_count (オプション = {})=整数
クエリに一致するドキュメントの推定数を取得します。
countとは異なり、estimated_count はブロックを必要としないため、カウントは のように Enumerable で従来(ブロックあり)ではないためです。
97 98 99 100 101 102 103 104 105 106 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行97 デフォルト Estimated_count( = {}) ただし、 自己.条件.セレクター.空の場合 場合 klass.default_scoping? 発生 Mongoid::Errors::Invalid EstimatedCountScoping.新着情報(自己.klass) else 発生 Mongoid::Errors::Invalid EstimatedCount Criteria.新着情報(自己.klass) end end 表示.Estimated_document_count() end |
が存在する場合(id_or_条件 = :none) = true | false
mongoはカウントされた b ツリー インデックスを使用していないため、ここではカウントは使用されません。
コンテキストにドキュメントが存在するかどうかを確認します。
190 191 192 193 194 195 196 197 198 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行190 デフォルト 存在するかどうか(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 番目のドキュメントを取得します。
699 700 701 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行699 デフォルト 50 retrieve_nth(4) end |
# 5 番目の。 =ドキュメント
条件のセレクターのデータベース内の 5 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
713 714 715 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行713 デフォルト 5 番目のドキュメント。 50 || resume_document_not_find_error end |
# find_first =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ソートを適用せずに最初の結果を返す
256 257 258 259 260 261 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行256 デフォルト 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 で使用される検索と変更コマンドを実行します。 これにより、見つかったドキュメントが削除されます。
247 248 249 250 251 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行247 デフォルト find_one_and_delete 場合 doc = 表示.find_one_and_delete 工場.from_db(klass, doc) end end |
# find_one_and_replace (置換、オプション = {}) =ドキュメント
MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。
234 235 236 237 238 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行234 デフォルト find_one_and_replace(replacement, = {}) 場合 doc = 表示.find_one_and_replace(replacement, ) 工場.from_db(klass, doc) end end |
#find_one_and_update(update, options = {}) ⇒ Document
MongoDB の $findAndModify で使用される検索と変更コマンドを実行します。
214 215 216 217 218 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行214 デフォルト find_one_and_update(update, = {}) 場合 doc = 表示.find_one_and_update(update, ) 工場.from_db(klass, doc) end end |
最初に#(制限 = nil)=ドキュメント| nil別名: 1
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用し、条件にソートが定義されていない場合に、予期しないパフォーマンスの低下が発生した場合は、代わりに使用してください。 では順序が保証されないことに注意してください。
条件のセレクターのデータベース内の最初のドキュメントを取得します。
550 551 552 553 554 555 556 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行550 デフォルト 最初に(limit = nil) 場合 limit.nil? retrieve_nth(0) else retrieve_nth_with_limit(0, limit) end end |
#first! ⇒ Document
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初に使用すると、予期しないパフォーマンスが低下した場合があります。 または 最後に指定します。条件にソートが定義されていない場合は、 が使用されます 。 ください。 が に注意してください。 は順序を保証しません。
条件のセレクターのデータベース内の最初のドキュメントを取得します。見つからない場合はエラーが発生します。
575 576 577 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行575 デフォルト 1 つ目。 最初に || resume_document_not_find_error end |
4 番目の =ドキュメント| nil
条件のセレクターのデータベース内の 4 番目のドキュメントを取得します。
675 676 677 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行675 デフォルト 4 つ retrieve_nth(3) end |
4 番目の。 =ドキュメント
条件のセレクターの データベース内の 4 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
689 690 691 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行689 デフォルト 4 つ目。 4 つ || resume_document_not_find_error end |
#last(limit = nil) ⇒ Document | nil
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用し、条件にソートが定義されていない場合に、予期しないパフォーマンスの低下が発生した場合は、代わりに使用してください。 では順序が保証されないことに注意してください。
条件のセレクターのデータベース内の最後のドキュメントを取得します。
593 594 595 596 597 598 599 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行593 デフォルト last(limit = nil) 場合 limit.nil? retrieve_nth_to_last(0) else retrieve_nth_to_last_with_limit(0, limit) end end |
#last! ⇒ Document
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初に使用すると、予期しないパフォーマンスが低下した場合があります。 または 最後に指定します。条件にソートが定義されていない場合は、 が使用されます 。 ください。 が に注意してください。 は順序を保証しません。
条件のセレクターのデータベース内の最後のドキュメントを取得します。見つからない場合はエラーが発生します。
617 618 619 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行617 デフォルト 最後に、次を追加します。 last || resume_document_not_find_error end |
長さ~整数別名:サイズ
データベース内のクエリ セレクターに一致するドキュメントの数を返します。
287 288 289 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行287 デフォルト Length 自己.count end |
制限(値) mongo
データベースから返されるドキュメントの数を制限します。
300 301 302 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行300 デフォルト limit(価値) @view = 表示.limit(価値) および 自己 end |
# load_async =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
コンテキストのドキュメントを読み込むタスクをスケジュールします。
Mongoid の構成に応じて、スケジュールされたタスクは呼び出し元のスレッドですぐに実行されることも、非同期実行用にスケジュールされることもできます。
776 777 778 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行776 デフォルト load_async @documents_loader ||= DocumentsLoader.新着情報(表示, klass, 条件) end |
# map_reduce (map, reduce)= mapReduce
コンテキストから map/reduce 操作を開始します。
313 314 315 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行313 デフォルト map_reduce(map, reduce) mapReduce.新着情報(コレクション, 条件, map, reduce) end |
# 選択 (* フィールド)= オブジェクト | Array[Object]<Object>
データベースから単一のフィールド値を選択します。
361 362 363 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行361 デフォルト 選択(*フィールド) limit(1).プル型(*フィールド).最初に end |
プル型 (* フィールド)= 配列= オブジェクト=================================配列未満<Object><Object>
データベースからフィールド値を取得します。 コンテキストのデータベースで見つかったドキュメントごとに 1 つの結果を返します。 結果は、Mongoid フィールド型に従って正規化されます。 結果には重複値と nil 値が含まれる場合があることに注意してください。
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行333 デフォルト プル型(*フィールド) 複数のフィールドを同じフィールド名にマッピングできます。 たとえば、プラグイン フィールドとその _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 番目のドキュメントを取得します。
627 628 629 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行627 デフォルト 秒 retrieve_nth(1) end |
#秒です。 =ドキュメント
条件のセレクターのデータベース内の 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
641 642 643 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行641 デフォルト 秒です。 秒 || resume_document_not_find_error end |
#second_to_last =ドキュメント| nil
条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。
スローされます。
725 726 727 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行725 デフォルト second_to_last retrieve_nth_to_last(1) end |
秒_to_last. =ドキュメント
条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
739 740 741 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行739 デフォルト second_to_last. second_to_last || resume_document_not_find_error end |
#skip (値) mongo
指定された数のドキュメントをスキップします。
480 481 482 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行480 デフォルト スキップ(価値) @view = 表示.スキップ(価値) および 自己 end |
#sort(values = nil, &block) ⇒ Mongo
指定された 仕様でドキュメントをソートします。
493 494 495 496 497 498 499 500 501 502 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行493 デフォルト sort(values = nil, &ブロック) 場合 ブロック_指定 スーパー(&ブロック) else 条件を 更新 @criteria = 条件.order_by(values) apply_option(:sort) 自己 end end |
#take(limit = nil) ⇒ Document | Array<Document>
指定された数のドキュメントをデータベースから取得します。
374 375 376 377 378 379 380 381 382 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行374 デフォルト が(limit = nil) 場合 limit limit(limit).to_a else 最初に _ を実行して、Mongo#first メソッドは使用されなくなり、 結果はソートされません。 limit(1).to_a.最初に end end |
#take! ⇒ Document
データベースから 1 つのドキュメントを取得し、ドキュメントがない場合はエラーが発生します。
393 394 395 396 397 398 399 400 401 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行393 デフォルト と一緒に使用されます 最初に _ を実行して、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 }
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行440 デフォルト 点(フィールド) 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_field ( fld 、 val 、 is_translation )のエンドポイントになりました。タリー ハッシュにキーが既に存在する時間は、値がデータベースに異なる方法で保存されている場合のみです。同じ値。この状況が発生するタイミングは、ローカル化されたフィールドを使用している場合です。サーバー クエリでは、異なる言語で他の 値を持つハッシュを グループ化することは ありません が、 # デーモン化された値は現在のロケールでの翻訳だけであり、これらは等しくないハッシュの複数にわたって同じになる場合があります。 合計[キー] |= 0合計[キー] +=ドキュメント[ "カウント" ]合計終了終了 |
3 つ目の =ドキュメント| nil
条件のセレクターのデータベース内の 3 番目のドキュメントを取得します。
651 652 653 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行651 デフォルト 3 つ目の retrieve_nth(2) end |
3 つ目の# =ドキュメント
条件のセレクターのデータベース内の 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
665 666 667 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行665 デフォルト 3 つ目。 3 つ目の || resume_document_not_find_error end |
# Third_to_last =ドキュメント| nil
条件のセレクターのデータベース内の最後から 3 番目のドキュメントを取得します。
スローされます。
751 752 753 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行751 デフォルト Third_to_last retrieve_nth_to_last(2) end |
# Third_to_last =ドキュメント
条件の セレクター のデータベース内の最後から 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
765 766 767 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行765 デフォルト Third_to_last. Third_to_last || resume_document_not_find_error end |
#update(attributes = nil, opts = {}) ⇒ nil | false
最初に一致するドキュメントを不可分的に更新します。
516 517 518 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行516 デフォルト update(属性 = nil, ops = {}) update_documents(属性, :update_one, ops) end |
#update_all(attributes = nil, opts = {}) ⇒ nil | false
一致するすべてのドキュメントを不可分的に更新します。
532 533 534 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行532 デフォルト update_all(属性 = nil, ops = {}) update_documents(属性, :update_many, ops) end |