クラス: 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 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
- # geo_near (座標) = GeoNear 非推奨 非推奨。
-
#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コンテキストを作成します。 これにより、操作は基礎のドライバーに委任されます。
296 297 298 299 300 301 302 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行296 デフォルト 初期化(条件) @criteria, @klass = 条件, 条件.klass @collection = @klass.コレクション 条件.送信(:merge_type_Selection) @view = コレクション.find(条件.セレクター, セッション: _session) end |
インスタンス属性の詳細
# document_loader ~オブジェクト(読み取り専用)
属性のドキュメント_ローダーの値を返します。
57 58 59 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行57 デフォルト document_loader @documents_loader end |
#ビュー=ハッシュ(読み取り専用)
基準について 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) =整数
クエリに一致するドキュメントの数を取得します。
76 77 78 79 80 81 82 83 84 85 86 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行76 デフォルト 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
データベース内のセレクターに一致するすべてのドキュメントを削除します。
117 118 119 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行117 デフォルト 削除 表示.delete_many.delete_count end |
# delete = nil 別名 : delete_all
データベース内のセレクターに一致するすべてのドキュメントを破棄します。
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 で個別の値を取得します。
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 ドキュメントに降格し、それ以外の場合は列挙を返します。
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 で従来(ブロックあり)ではないためです。
100 101 102 103 104 105 106 107 108 109 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行100 デフォルト 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 ツリー インデックスを使用していないため、ここではカウントは使用されません。
コンテキストにドキュメントが存在するかどうかを確認します。
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 番目のドキュメントを取得します。
725 726 727 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行725 デフォルト 50 retrieve_nth(4) end |
# 5 番目の。 =ドキュメント
条件のセレクターのデータベース内の 5 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
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 で使用される検索と変更コマンドを実行します。 これにより、見つかったドキュメントが削除されます。
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 で使用される検索と変更コマンドを実行します。
237 238 239 240 241 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行237 デフォルト 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 で使用される検索と変更コマンドを実行します。
217 218 219 220 221 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行217 デフォルト find_one_and_update(update, = {}) 場合 doc = 表示.find_one_and_update(update, ) 工場.from_db(klass, doc) end end |
最初に#(制限 = nil)=ドキュメント| nil別名: 1
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用し、条件にソートが定義されていない場合に、予期しないパフォーマンスの低下が発生した場合は、代わりに使用してください。 では順序が保証されないことに注意してください。
条件のセレクターのデータベース内の最初のドキュメントを取得します。
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 にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初に使用すると、予期しないパフォーマンスが低下した場合があります。 または 最後に指定します。条件にソートが定義されていない場合は、 が使用されます 。 ください。 が に注意してください。 は順序を保証しません。
条件のセレクターのデータベース内の最初のドキュメントを取得します。見つからない場合はエラーが発生します。
601 602 603 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行601 デフォルト 1 つ目。 最初に || resume_document_not_find_error end |
4 番目の =ドキュメント| nil
条件のセレクターのデータベース内の 4 番目のドキュメントを取得します。
701 702 703 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行701 デフォルト 4 つ retrieve_nth(3) end |
4 番目の。 =ドキュメント
条件のセレクターの データベース内の 4 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
715 716 717 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行715 デフォルト 4 つ目。 4 つ || resume_document_not_find_error end |
# geo_near (座標) = GeoNear
データベースに対して $geoNear コマンドを実行します。
285 286 287 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行285 デフォルト geo_near(coordinates) geoNear.新着情報(コレクション, 条件, coordinates) end |
#last(limit = nil) ⇒ Document | nil
条件に他のソートが定義されていない場合に、_id にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初または最後に使用し、条件にソートが定義されていない場合に、予期しないパフォーマンスの低下が発生した場合は、代わりに使用してください。 では順序が保証されないことに注意してください。
条件のセレクターのデータベース内の最後のドキュメントを取得します。
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 にソートを自動的に追加すると、パフォーマンスの問題が発生する可能性があります。 最初に使用すると、予期しないパフォーマンスが低下した場合があります。 または 最後に指定します。条件にソートが定義されていない場合は、 が使用されます 。 ください。 が に注意してください。 は順序を保証しません。
条件のセレクターのデータベース内の最後のドキュメントを取得します。見つからない場合はエラーが発生します。
643 644 645 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行643 デフォルト 最後に、次を追加します。 last || resume_document_not_find_error end |
長さ~整数別名:サイズ
データベース内のクエリ セレクターに一致するドキュメントの数を返します。
313 314 315 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行313 デフォルト Length 自己.count end |
制限(値) 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 操作を開始します。
339 340 341 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行339 デフォルト map_reduce(map, reduce) mapReduce.新着情報(コレクション, 条件, map, reduce) end |
# 選択 (* フィールド)= オブジェクト | Array[Object]<Object>
データベースから単一のフィールド値を選択します。
387 388 389 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行387 デフォルト 選択(*フィールド) limit(1).プル型(*フィールド).最初に end |
プル型 (* フィールド)= 配列= オブジェクト=================================配列未満<Object><Object>
データベースからフィールド値を取得します。 コンテキストのデータベースで見つかったドキュメントごとに 1 つの結果を返します。 結果は、Mongoid フィールド型に従って正規化されます。 結果には重複値と nil 値が含まれる場合があることに注意してください。
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 番目のドキュメントを取得します。
653 654 655 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行653 デフォルト 秒 retrieve_nth(1) end |
#秒です。 =ドキュメント
条件のセレクターのデータベース内の 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
667 668 669 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行667 デフォルト 秒です。 秒 || resume_document_not_find_error end |
#second_to_last =ドキュメント| nil
条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。
スローされます。
751 752 753 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行751 デフォルト second_to_last retrieve_nth_to_last(1) end |
秒_to_last. =ドキュメント
条件のセレクターのデータベース内の最後から 2 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
765 766 767 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行765 デフォルト second_to_last. second_to_last || resume_document_not_find_error end |
#skip (値) mongo
指定された数のドキュメントをスキップします。
506 507 508 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行506 デフォルト スキップ(価値) @view = 表示.スキップ(価値) および 自己 end |
#sort(values = nil, &block) ⇒ 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>
指定された数のドキュメントをデータベースから取得します。
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 つのドキュメントを取得し、ドキュメントがない場合はエラーが発生します。
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 }
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_field ( fld 、 val 、 is_translation )のエンドポイントになりました。タリー ハッシュにキーが既に存在する時間は、値がデータベースに異なる方法で保存されている場合のみです。同じ値。この状況が発生するタイミングは、ローカル化されたフィールドを使用している場合です。サーバー クエリでは、異なる言語で他の 値を持つハッシュを グループ化することは ありません が、 # デーモン化された値は現在のロケールでの翻訳だけであり、これらは等しくないハッシュの複数にわたって同じになる場合があります。 合計[キー] |= 0合計[キー] +=ドキュメント[ "カウント" ]合計終了終了 |
3 つ目の =ドキュメント| nil
条件のセレクターのデータベース内の 3 番目のドキュメントを取得します。
677 678 679 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行677 デフォルト 3 つ目の retrieve_nth(2) end |
3 つ目の# =ドキュメント
条件のセレクターのデータベース内の 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
691 692 693 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行691 デフォルト 3 つ目。 3 つ目の || resume_document_not_find_error end |
# Third_to_last =ドキュメント| nil
条件のセレクターのデータベース内の最後から 3 番目のドキュメントを取得します。
スローされます。
777 778 779 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行777 デフォルト Third_to_last retrieve_nth_to_last(2) end |
# Third_to_last =ドキュメント
条件の セレクター のデータベース内の最後から 3 番目のドキュメントを取得します。見つからない場合はエラーが発生します。
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
最初に一致するドキュメントを不可分的に更新します。
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
一致するすべてのドキュメントを不可分的に更新します。
558 559 560 |
# ファイル 'lib/mongoid/contextual/mongo.rb' 行558 デフォルト update_all(属性 = nil, ops = {}) update_documents(属性, :update_many, ops) end |