クラス: Mongo::Collection
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Collection
- 次による拡張機能。
- 転送可能
- 次のことが含まれます。
- ヘルパー、 QueryableEncryption 、再試行可能な
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/collection.rb 、
build/ruby-Driver-v 2.19 /lib/mongo/collection/view.rb,
build/ruby-Driver-v 2.19 /lib/mongo/collection/helpers.rb,
build/ruby-Driver-v 2.19 /lib/mongo/collection/view/iterable.rb,
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/readable.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/writetable.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/imutable.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/map_reduce.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/aggregation.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/explainable.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/change_stream.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/queryable_encryption.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/Builder/map_reduce.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/Builder/aggregation.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/collection/view/change_stream/retryable.rb
Overview
データベース内のコレクションと、そのコレクションに直接適用できる操作を表します。
名前空間で定義済み
Modules: ヘルパー、 QueryableEncryptionクラス:ビュー
定数の概要の削減
- CAPED =
Capped オプション。
上限 付き.freeze
- ns =
ns フィールド定数。
'ns'.freeze
- CHANGEABLE_OPTIONS =
新しいコレクションインスタンスで#withメソッドを使用して更新できるオプション。
[ :read, :read_concern, :write, :write_concern ].freeze
- CREATE_COLLECTION_OPTIONS =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
オプションは、コレクション作成オプションを変換するにマップします。
{ :time_series => :timeseries, :expire_ after => :expireAfterSeconds, :clustered_index => :clusteredIndex, :change_stream_pre_and_post_images => :changeStreamPreAndPostImages, :encrypted_fields => :encryptedFields, :validator => :validator, :view_on => :viewOn }
QueryableEncryptionから含まれる定数
QueryableEncryption::QE 2 _MIN_WIRE_VERSION
インスタンス属性の概要を折りたたむ
-
#database ⇒ Mongo::Database
readOnly
コレクションが存在するデータベース。
-
#name = string
readOnly
コレクションの名前。
-
#options ⇒ Hash
readOnly
コレクションオプション
インスタンス メソッドの概要を折りたたむ
-
# == (その他) ==(その他) ========= ================================================================== false
コレクションが別のオブジェクトと等しいかどうかを確認します。
-
#集計(パイプライン、オプション = {{}) → View::Aggregation
コレクションに対して集計を実行します。
-
# bulk_write (リクエスト、オプション = {}) = BulkWrite::Result
一括書き込み操作のバッチを実行します。
-
上限付きか。 = true | false
コレクションは上限付きか?
-
カウント(フィルター = nil、オプション = {}) = 整数
非推奨
非推奨。
代わりに #count_documents またはestimate_document_count_count を使用してください。 ただし、#count_documents に切り替えるときに次の演算子を置き換える必要があることに注意してください。
* $where should be replaced with $expr (only works on 3.6+) * $near should be replaced with $geoWithin with $center * $nearSphere should be replaced with $geoWithin with $centerSphere
-
count_documents (フィルター = {}、オプション = {}) = 整数
クエリに一致するドキュメントの数を取得します。
-
#create (opts = {{}) = 結果
データベースにコレクションを強制的に作成します。
-
# delete_many (フィルター = nil、オプション = {}) = 結果
コレクションからドキュメントを削除します。
-
# delete_one (フィルター = nil、オプション = {}) = 結果
コレクションからドキュメントを削除します。
-
個別の数(フィールド名、フィルター = nil、オプション = {{}) = 配列 <Object>
特定のフィールドの個別の値のリストを取得します。
-
#drop (ops = {}) = 結果
コレクションを削除します。
-
#estimate_document_count (オプション = {}) = 整数
コレクションのメタデータを使用して、コレクション内のドキュメント数の推定値を取得します。
-
# find (フィルター = nil、オプション = {}) = CollectionView
コレクション内のドキュメントを検索します。
-
# find_one_and_delete (フィルター、オプション = {}) = BSON::Document ?
findAndModify 経由でデータベース内の単一のドキュメントを検索し、削除し、元のドキュメントを返します。
-
# find_one_and_replace (フィルター、置換、オプション = {}) = BSON::Document
1 つのドキュメントを検索して置き換え、特に指定されていない限り、元のドキュメントを返します。
-
#find_one_and_update(filter, update, options = {}) ⇒ BSON::Document
findAndModify 経由で単一のドキュメントを検索し、そのドキュメントを更新すると、特に指定されていない限り、元のドキュメントを返します。
-
#indexes(options = {}) ⇒ View::Index
このコレクションのすべてのインデックスのビューを取得します。
-
#初期化(データベース、名前、オプション = {}) = コレクション = コレクション
コンストラクター
新しい コレクションをインスタンス化します。
-
# insert_many (ドキュメント、オプション = {}) = 結果
提供されたドキュメントを コレクションに挿入します。
-
# insert_one (ドキュメント、opts = {}) = 結果
コレクションに単一のドキュメントを挿入します。
-
詳しくは、 を 検査し ますstring
コレクションのpretty-printed string 検査を取得します。
-
#名前空間= string
コレクションの完全修飾名前空間を取得します。
-
# parallel_scan (cursor_count、オプション = {})= Array=========================================================<Cursor>
コレクション ビューで並列スキャンを実行します。
-
#read_concern =ハッシュ
このコレクション インスタンスの有効な読み取り保証を取得します。
-
# read_preference =ハッシュ
このコレクションの有効な 読み込み設定(read preference) を取得します。
-
# replace_one (フィルター, 置換, オプション = {}) = 結果
コレクション内の単一のドキュメントを新しいドキュメントに置き換えます。
-
# server_selector = Mongo::ServerSelector
このコレクションのサーバー セレクターを取得します。
-
システム_コレクション? = ブール値
private
コレクションがシステム コレクションであるかどうか。
-
#update_many(filter, update, options = {}) ⇒ Result
コレクション内のドキュメントを更新します。
-
#update_one(filter, update, options = {}) ⇒ Result
コレクション内の 1 つのドキュメントを更新します。
-
多数表示(パイプライン = []、オプション = {}) = ChangeStream
MongoDB サーバーのバージョン3.6以降、$changeStream" パイプライン ステージは集計フレームワークでサポートされています。
-
(new_options)を使用した# Mongo::Collection
新しい コレクション インスタンス。
-
#write_concern = Mongo::WriteConcern
このコレクションの有効な書込み保証 (write concern) を取得します。
-
#write_concern_with_session (セッション)=Mongo::WriteConcern
private
このコレクションに対する操作に使用する書込み保証 (write concern) を取得します(セッションが指定された場合)。
ヘルパーに含まれるメソッド
QueryableEncryptionに含まれるメソッド
#maybe_create_qe_collections 、 #maybe_drop_emm_collections
再試行可能な に含まれるメソッド
#read_worker 、 #select_server 、 #write_worker
コンストラクターの詳細
#初期化(データベース、名前、オプション = {}) = コレクション =コレクション
新しい コレクションをインスタンス化します。
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は158行 デフォルト 初期化(database, name, = {}) 発生 エラー::InvalidCollectionName.新着情報 ただし、 name 場合 [:write] & & [:write_concern] & & [:write] != [:write_concern] 発生 ArgumentError, " :write と :write_concern の両方が指定されている場合、それらは同一である必要があります。 #{ . explain } " end @database = database @name = name.to_s.freeze @options = .dup =開始 WriteConcern オブジェクト サポート の場合 @options[:write_concern].is_a?(WriteConcern::Base) # インスタンスをキャッシュして、不必要に再構築されないようにします。 @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =end @options.freeze end |
インスタンス属性の詳細
#database ⇒ Mongo::Database (readonly)
コレクションが存在するデータベースを返します。
46 47 48 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は46行 デフォルト database @database end |
# name = string (読み取り専用)
コレクションの名前を返します。
49 50 51 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は49行 デフォルト name @name end |
オプション=ハッシュ(読み取り専用)
コレクションオプションを返します。
52 53 54 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は52行 デフォルト @options end |
インスタンス メソッドの詳細
# == (その他) ==(その他) ========= ================================================================== false
コレクションが別のオブジェクトと等しいかどうかを確認します。 名前とデータベースが等価であるかどうかを確認します。
89 90 91 92 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は89行 デフォルト ==(その他) return false ただし、 その他.is_a?(コレクション) name == その他.name & & database == その他.database & & == その他. end |
#集計(パイプライン、オプション = {{}) → View::Aggregation
コレクションに対して集計を実行します。
536 537 538 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は536行 デフォルト 集計(パイプライン, = {}) ビュー.新着情報(自己, {}, ).集計(パイプライン, ) end |
# bulk_write (リクエスト、オプション = {}) = BulkWrite::Result
一括書き込み操作のバッチを実行します。
845 846 847 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は845行 デフォルト bulk_write(リクエスト, = {}) 一括書込み (write).新着情報(自己, リクエスト, ).実行する end |
上限付きか。 = true | false
コレクションは上限付きか?
316 317 318 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は316行 デフォルト 上限付きか database.read_command(:collstats => name).ドキュメント[0][CAPED] end |
カウント(フィルター = nil、オプション = {}) =整数
代わりに #count_documents またはestimate_document_count_count を使用してください。 ただし、#count_documents に切り替えるときに次の演算子を置き換える必要があることに注意してください。
* $where should be replaced with $expr (only works on 3.6+)
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphere
コレクション内の一致するドキュメントの推定数を取得します。
640 641 642 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は640行 デフォルト count(フィルター = nil, = {}) ビュー.新着情報(自己, フィルター || {}, ).count() end |
count_documents (フィルター = {}、オプション = {}) =整数
クエリに一致するドキュメントの数を取得します。 非推奨の カウント メソッドとは異なり、推定値ではなく、フィルターに一致するドキュメントの正確な数(またはフィルターが提供されていない場合は、コレクション内のドキュメントの正確な数)が返されます。
#estimated_document_count を使用して、コレクションのメタデータを使用して、コレクション内のドキュメント数の推定値を取得します。
670 671 672 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は670行 デフォルト count_documents(フィルター = {}, = {}) ビュー.新着情報(自己, フィルター, ).count_documents() end |
#create (opts = {{}) =結果
データベースにコレクションを強制的に作成します。
373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は373行 デフォルト create(ops = {}) # 読み取りオプションを渡してコマンドを作成すると、コマンドが中断されます。 # 読み取りオプションをフィルタリングで除外します。 セッションもここでは除外されます は with_session の呼び出しで使用され、次の一部ではない必要があります # 操作。 操作に渡されると、BSON は失敗します # シリアル化。 TODO は、次の場合に読み取りオプションのリストをクラスレベルの定数に配置します # では、それらの完全なセットが何であるかがわかります。 = ハッシュ[自己..merge(ops).拒否 行う |キー, 価値| %w(読み取り read_preference read_concern セッション).include?(キー.to_s) end] Ruby オプションをサーバー スタイルに変換する。 CREATE_COLLECTION_OPTIONS.各 行う |Ruby_key, server_key| 場合 .key?(Ruby_key) [server_key] = .削除(Ruby_key) end end 操作 = { :create => name }.merge() 操作.削除(:write) 操作.削除(:write_concern) クライアント.送信(:with_session, ops) 行う |セッション| write_concern = 場合 ops[:write_concern] WriteConcern.得る(ops[:write_concern]) else 自己.write_concern end context = 操作::Context.新着情報(クライアント: クライアント, セッション: セッション) Max_create_qe_collections(ops[:encrypted_fields], クライアント, セッション) 行う |encryption_fields| 操作::作成.新着情報( セレクター: 操作, db_name: database.name, write_concern: write_concern, セッション: セッション, # これらはコレクション オプションであり、照合は次ではないことに注意してください: create メソッドに渡されるオプションから取得された#。 collation: [:collation] || [「照合」], encryption_fields: encryption_fields, validator: [:validator], ).実行する(next_primary(nil, セッション), context: context) end end end |
# delete_many (フィルター = nil、オプション = {}) =結果
コレクションからドキュメントを削除します。
889 890 891 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は889行 デフォルト delete_many(フィルター = nil, = {}) find(フィルター, ).delete_many() end |
# delete_one (フィルター = nil、オプション = {}) =結果
コレクションからドキュメントを削除します。
867 868 869 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は867行 デフォルト delete_one(フィルター = nil, = {}) find(フィルター, ).delete_one() end |
個別の数(フィールド名、フィルター = nil、オプション = {{}) =配列 <Object>
特定のフィールドの個別の値のリストを取得します。
712 713 714 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は712行 デフォルト distinct(field_name, フィルター = nil, = {}) ビュー.新着情報(自己, フィルター || {}, ).distinct(field_name, ) end |
#drop (ops = {}) =結果
コレクションが存在しない場合に返されるエラーは非表示になります。
コレクションを削除します。 また、コレクションに関連付けられているすべてのインデックスと、関連付けられているQueryable Encryptionコレクションも削除されます。
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は435行 デフォルト drop(ops = {}) クライアント.送信(:with_session, ops) 行う |セッション| Max_drop_em_collections(ops[:encrypted_fields], クライアント, セッション) 行う temp_write_concern = write_concern write_concern = 場合 ops[:write_concern] WriteConcern.得る(ops[:write_concern]) else temp_write_concern end context = 操作::Context.新着情報(クライアント: クライアント, セッション: セッション) 操作 = 操作::drop.新着情報({ セレクター: { :drop => name }, db_name: database.name, write_concern: write_concern, セッション: セッション, }) do_drop(操作, セッション, context) end end end |
#estimate_document_count (オプション = {}) =整数
コレクションのメタデータを使用して、コレクション内のドキュメント数の推定値を取得します。
コレクション内のドキュメントの正確な数を取得するには、#count_documents を使用するか、フィルターに一致するドキュメントをカウントするには、 #count_documents
691 692 693 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は691行 デフォルト Estimated_document_count( = {}) ビュー.新着情報(自己, {}, ).Estimated_document_count() end |
# find (フィルター = nil、オプション = {}) = CollectionView
コレクション内のドキュメントを検索します。
501 502 503 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は501行 デフォルト find(フィルター = nil, = {}) ビュー.新着情報(自己, フィルター || {}, ) end |
# find_one_and_delete (フィルター、オプション = {}) = BSON::Document ?
findAndModify 経由でデータベース内の単一のドキュメントを検索し、削除し、元のドキュメントを返します。
1027 1028 1029 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は1027行 デフォルト find_one_and_delete(フィルター, = {}) find(フィルター, ).find_one_and_delete() end |
# find_one_and_replace (フィルター、置換、オプション = {}) = BSON::Document
1 つのドキュメントを検索して置き換え、特に指定されていない限り、元のドキュメントを返します。
1105 1106 1107 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は1105行 デフォルト find_one_and_replace(フィルター, replacement, = {}) find(フィルター, ).find_one_and_update(replacement, ) end |
#find_one_and_update(filter, update, options = {}) ⇒ BSON::Document
findAndModify 経由で単一のドキュメントを検索し、そのドキュメントを更新すると、特に指定されていない限り、元のドキュメントを返します。
1067 1068 1069 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は1067行 デフォルト find_one_and_update(フィルター, update, = {}) find(フィルター, ).find_one_and_update(update, ) end |
#indexes(options = {}) ⇒ View::Index
このコレクションのすべてのインデックスのビューを取得します。 反復処理できる、またはより多くの操作があります。
729 730 731 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は729行 デフォルト indexes( = {}) Index::ビュー.新着情報(自己, ) end |
# insert_many (ドキュメント、オプション = {}) =結果
提供されたドキュメントを コレクションに挿入します。
817 818 819 820 821 822 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は817行 デフォルト insert_many(ドキュメント, = {}) クエリ キャッシュ.clear_namespace(namespace) inserts = ドキュメント.map{ |doc| { :insert_one => doc }} bulk_write(inserts, ) end |
# insert_one (ドキュメント、opts = {}) =結果
コレクションに単一のドキュメントを挿入します。
764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は764行 デフォルト insert_one(ドキュメント, ops = {}) クエリ キャッシュ.clear_namespace(namespace) クライアント.送信(:with_session, ops) 行う |セッション| write_concern = 場合 ops[:write_concern] WriteConcern.得る(ops[:write_concern]) else write_concern_with_session(セッション) end 場合 ドキュメント.nil? 発生 ArgumentError, "挿入するドキュメントは nil にできません" end context = 操作::Context.新着情報(クライアント: クライアント, セッション: セッション) write_with_retry(write_concern, context: context) 行う |接続, txn_num, context| 操作::Insert.新着情報( :documents => [ ドキュメント ], :db_name => database.name, :coll_name => name, :write_concern => write_concern, :bypass_document_validation => !!ops[:bypass_document_validation], :options => ops, :id_genator => クライアント.[:id_genator], :session => セッション, :txn_num => txn_num, :comment => ops[:comment] ).execution_with_ connection(接続, context: context) end end end |
詳しくは、 を 検査しstring ます
コレクションのpretty-printed string 検査を取得します。
741 742 743 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は741行 デフォルト 検査する " #< Mongo::Collection: 0 x #{ object_id } namespace= #{ namespace } > " end |
#名前空間= string
コレクションの完全修飾名前空間を取得します。
1117 1118 1119 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は1117行 デフォルト namespace " #{データベース.名前} . #{名前} " end |
# parallel_scan (cursor_count、オプション = {{})= Array ========================================================
コレクション ビューで並列スキャンを実行します。
同時に反復処理できる最大 cursor_count カーソルのリストを返します。 スキャン中にコレクションが変更されていない限り、各ドキュメントはカーソルの結果セットのいずれかに 1 回表示されます。
912 913 914 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は912行 デフォルト parallel_scan(cursor_count, = {}) find({}, ).送信(: parallel_scan, cursor_count, ) end |
#read_concern =ハッシュ
このコレクション インスタンスの有効な読み取り保証を取得します。
コレクション オプションで読み取り保証 (read concern) が指定されている場合は、その読み取り保証 (read concern) が返されます。それ以外の場合は、データベースの有効な読み取り保証 (read concern) が返されます。
188 189 190 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は188行 デフォルト read_concern [:read_concern] || database.read_concern end |
# read_preference =ハッシュ
このコレクションの有効な 読み込み設定(read preference) を取得します。
コレクション オプションで読み込み設定(read preference)が指定されている場合は、その読み込み設定(read preference)が返されます。それ以外の場合は、データベースの有効な読み込み設定(read preference)が返されます。
216 217 218 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は216行 デフォルト read_preference @read_preference ||= [:read] || database.read_preference end |
# replace_one (フィルター, 置換, オプション = {}) =結果
コレクション内の単一のドキュメントを新しいドキュメントに置き換えます。
939 940 941 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は939行 デフォルト replace_one(フィルター, replacement, = {}) find(フィルター, ).replace_one(replacement, ) end |
# server_selector = Mongo::ServerSelector
このコレクションのサーバー セレクターを取得します。
200 201 202 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は200行 デフォルト server_selector @server_selector ||= ServerSelector.得る(read_preference || database.server_selector) end |
システム_コレクション? =ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
コレクションがシステム コレクションであるかどうか。
1126 1127 1128 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は1126行 デフォルト system_collection? name.start_with?('システムです。 ') end |
#update_many(filter, update, options = {}) ⇒ Result
コレクション内のドキュメントを更新します。
968 969 970 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は968行 デフォルト update_many(フィルター, update, = {}) find(フィルター, ).update_many(update, ) end |
#update_one(filter, update, options = {}) ⇒ Result
コレクション内の 1 つのドキュメントを更新します。
997 998 999 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は997行 デフォルト update_one(フィルター, update, = {}) find(フィルター, ).update_one(update, ) end |
多数表示 (パイプライン = []、オプション = {}) = ChangeStream
変更ストリームでは「majority」の読み取り保証のみが許可されます。
このヘルパー メソッドは、再開可能性をサポートするために、 $changeStream ステージで未加工の集計を実行するよりも推奨されます。
MongoDB サーバーのバージョン3.6以降、$changeStream" パイプライン ステージは集計フレームワークでサポートされています。 このステージでは、ユーザーは特定のコレクションに対するすべての変更に対して通知を送信するようリクエストできます。
607 608 609 610 611 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は607行 デフォルト 監視(パイプライン = [], = {}) = .dup [:await_data] = true 場合 [:max_await_time_ms] ビュー::ChangeStream.新着情報(ビュー.新着情報(自己, {}, ), パイプライン, nil, ) end |
(new_options)を使用した# Mongo::Collection
新しいコレクションインスタンスを返します。
294 295 296 297 298 299 300 301 302 303 304 305 306 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は294行 デフォルト と共に() .キー.各 行う |k| 発生 エラー::UnchangeableCollectionOption.新着情報(k) ただし、 CHANGEABLE_OPTIONS.include?(k) end = @options.dup 場合 [:write] & & [:write_concern] .削除(:write) end 場合 [:write_concern] & & [:write] .削除(:write_concern) end コレクション.新着情報(database, name, .update()) end |
#write_concern = Mongo::WriteConcern
このコレクションの有効な書込み保証 (write concern) を取得します。
コレクション オプションで書込み保証 (write concern) が指定されている場合は、その書込み保証 (write concern) が返されます。それ以外の場合は、データベースの有効な書込み保証 (write concern) が返されます。
232 233 234 235 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は232行 デフォルト write_concern @write_concern ||= WriteConcern.得る( [:write_concern] || [:write] || database.write_concern) end |
#write_concern_with_session (セッション)= Mongo::WriteConcern
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このコレクションに対する操作に使用する書込み保証 (write concern) を取得します(セッションが指定された場合)。
セッションがトランザクション内にあり、コレクションに未確認の書込み保証 (write concern) がある場合は、書込み保証 (write concern) の :w オプションを削除します。 それ以外の場合は、変更されていない書込み保証を返します。
248 249 250 251 252 253 254 255 256 257 258 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection.rb' の場合は248行 デフォルト write_concern_with_session(セッション) wc = write_concern 場合 セッション & & セッション.in_transaction? 場合 wc & & !wc.確認済み? ops = wc..dup ops.削除(:w) return WriteConcern.得る(ops) end end wc end |