クラス: Mongo::Client
Overview
クライアントはドライバーへのエントリポイントであり、操作されるメインオブジェクトです。
定数の概要の削減
- CRUD_OPTIONS =
クラスターとそのサブコンポーネントの動作に影響を与えないオプション。
[ : auto_encryption_options, :database, :read, :read_concern, :write, :write_concern, :retry_reads, :max_read_retry, :read_retry_Interval, :retry_writes, :max_write_retry, :max_adapactive_retry, :enable_overload_re targeting, :timeout_ms, 現在ここに存在できないオプションは次のとおりです。 # # :server_Selection_timeout # サーバー選択タイムアウトはクラスターコンストラクターが計算するために使用する # 互換性モードでの初期スキャンの待機時間 クラスターが初期化されると、このタイムアウトは使用されなくなります。 サーバー セレクターの読み取りサーバー選択がタイムアウトになりました # クラスター、この動作は Cluster#next_primary で必要です。 # は引数を取りません。next_primary が削除されると、再度アクセスできます : 異なるサーバー選択タイムアウトを持つ同じクラスター オブジェクトを使用します。 ].freeze
- VALID_OPTIONS =
有効なクライアント オプション。
%i[ app_name auth_mech auth_mech_properties auth_source auto_encryption_options bg_error_backtrace クリーンアップ compressors direct_ connection enable_overload_re targeting 接続 connect_timeout database heartbeat_frequency id_genator load_standard local_threshold logger log_prefix max_adapactive_retry max_connecting max_idle_time max_Pool_size max_read_retry max_write_retry min_Pool_size モニタリング monitoring_io パスワード プラットフォーム MongoDB_io 読み取り read_concern read_retry_Interval レプリカ_セット resolve_options retry_reads retry_writes スキャン sdam_proc server_api server_monitoring_mode server_Selection_timeout socket_timeout srv_max_hosts srv_service_name ssl ssl_ca_cert ssl_ca_cert_object ssl_ca_cert_string ssl_cert ssl_cert_object ssl_cert_string ssl_key ssl_key_object ssl_key_pass_ phrase ssl_key_string ssl_verify ssl_verify_certify ssl_verify_hostname ssl_verify_OCSP_endpoint timeout_ms トレース trunc_logs user wait_queue_timeout mapping_librarys 書込み (write) write_concern zlib_compression_level ].freeze
- VALID_COMPRESSORS =
ドライバーがサポートする圧縮アルゴリズム。
[ mongo::プロトコル::圧縮::zstd, mongo::プロトコル::圧縮::Snappy, mongo::プロトコル::圧縮::zlib ].freeze
- VALID_SERVER_API_VERSIONS =
既知のサーバー API バージョン。
%w[ 1 ].freeze
Loggableに含まれる定数
インスタンス属性の概要を折りたたむ
-
#cluster ⇒ Mongo::Cluster
readOnly
クラスター クライアント用サーバーのクラスターです。
-
#database ⇒ Mongo::Database
readOnly
データベース クライアントが操作しているデータベース。
-
#暗号化= Mongo::Crypt::AutoEncrypter
readOnly
自動暗号化の動作をカプセル化するオブジェクト。
-
#options ⇒ Hash
readOnly
オプション 構成オプション。
-
#retry_olicy == Mongo::Retryable::RetryPolicy
readOnly
private
バックプレッシャーとアダプティブ再試行の再試行ポリシー。
クラスメソッドの概要を折りたたむ
-
。 Canonicalize_ruby_options (オプション) = オブジェクト
private
指定されたオプションで認証メカニズムのプロパティを小文字にする(指定されている場合)は、オプションを Options::Redact のインスタンスに変換します。
インスタンス メソッドの概要を折りたたむ
-
# == (その他) = true、false (また: #eql?)
このクライアントが別のオブジェクトと同等かどうかを判断します。
-
# [] (collection_name, options = {}) = Mongo::Collection
指定されたコレクション名のコレクション オブジェクトを取得します。
-
#閉じる= true
すべての接続を閉じます。
-
# close_encrypter = true
エンクリプタを閉じ、自動暗号化リソースをクリーンアップします。
- #閉じました= ブール値
- # cluster_options =オブジェクト private
-
# database_names (filter = {}、opts = {{}) = 配列=<String>
すべてのデータベースの名前を取得します。
-
#encrypted_fields_map = ハッシュ | nil
private
クライアントの作成時に指定された場合、暗号化されたフィールド マップ ハッシュを返します。
-
#get_session(options = {}) ⇒ Session | nil
private
可能な場合、操作に使用するセッションを返します。
-
#ハッシュ= 整数
クライアントのハッシュ値を取得します。
-
#初期化(address_or_uri、オプション = nil) = nil) = クライアント
コンストラクター
新しいドライバー クライアントをインスタンス化します。
-
詳しくは、 を 検査し ますstring
クライアントの検査を string として取得します。
-
# list_databases (filter = {}、name_only = false、ops = {}) = Array={}<Hash>
各データベースの情報を取得します。
-
list_mongo_databases #(filter = {}、opts = {{}) = Array[Mongo::Database]<Mongo::Database>
Mongo::Database オブジェクトの一覧を返します。
-
# max_read_retry =整数
private
レガシー読み取り操作を使用する場合にクライアントが読み取り操作を再試行できる最大回数を取得します。
-
# max_write_retry =整数
private
レガシー書込み再試行を使用する場合にクライアントが書込み操作を再試行できる最大回数を取得します。
-
#read_concern =ハッシュ
このクライアントの 読み取り保証 (read concern) を取得します。
-
#read_preference = BSON::Document
クライアントに渡されたオプションから読み込み設定 (read preference) を取得します。
-
# read_retry_Interval =浮動小数点数
private
レガシー読み取り再試行を使用する場合の読み取り再試行の間隔を秒単位で取得します。
-
#再接続= true
クライアントを再接続します。
-
# server_selector = Mongo::ServerSelector
サーバー セレクターを取得します。
-
# start_session (オプション = {}) = セッション
セッションを開始します。
-
#のサマリー= string
クライアントの状態の概要を取得します。
-
#timeout_ms ⇒ Integer | nil
private
timeout_ms オプションの値(設定されている場合)。
-
#timeout_sec ⇒ Float | nil
private
timeout_ms オプションの値が秒に変換されます。
-
# tracker ~ トラッキング:::Tlaser | nil
このクライアント用に構成されたトレーサーを取得します。
-
#update_options(new_options) ⇒ Hash
private
このクライアントのオプションを new_options から更新し、すべてのオプションを検証します。
-
# use (name)=Mongo::Client
指定された名前のデータベースを使用し、このクライアントで構成された他のオプションを使用するように構成された新しいクライアントを作成します。
-
多数表示(パイプライン = []、オプション = {}) = ChangeStream
クライアントのクラスターで発生するすべての変更について通知を送信するようユーザーがリクエストできるようにします。
-
( new_options = nil)================================================
渡されたオプションがこのクライアントの既存のオプションにマージされて、新しいクライアントを作成します。
-
# with_session(オプション = {}) = オブジェクト
private
可能な場合、操作に使用するセッションを作成し、それを指定された ブロックに渡す。
-
#write_concern = Mongo::WriteConcern
このクライアントの 書込み保証 (write concern) を取得します。
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
コンストラクターの詳細
#初期化(address_or_uri、オプション = nil) = nil) =クライアント
新しいドライバー クライアントをインスタンス化します。
526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 |
# ファイル 'lib/mongo/ クライアント', 行 526 デフォルト 初期化(address_or_uri, = nil) = ? .dup : {} 処理済み = Process_addresses(address_or_uri, ) uri = 処理済み[:uri] address = 処理済み[: address] = 処理済み[:options] URI が #SRV URI の場合、これを書き留めておきます。 トポロジーがシャーディングされたクラスターの場合は、 SRV ポーリング。 srv_uri = uri 場合 uri.is_a?(URI::SRVProtocol) = 自己.クラス.() # サーバー API バージョンは string として指定されています。 ただし、常に数字1を string として指定するのは非常に望ましくない したがって、ここではstring型にキャストされます。 場合 (server_api = [:server_api]) & & server_api.is_a?(ハッシュ) server_api = オプション::編集済み.新着情報(server_api) 場合 (バージョン = server_api[:version]).is_a?(整数) [:server_api] = server_api.merge(バージョン: バージョン.to_s) end end # クライアントでのみ使用されるため、 sam_process の特別な処理 # 構築 sdam_proc = .削除(:sdam_proc) # glaspi service_name の場合、デフォルト オプションは ハッシュで指定されます #(最上位レベルから 1 レベルダウン)。 = () .各 行う |k, v| default_v = [k] v = default_v.merge(v) 場合 default_v.is_a?(ハッシュ) [k] = v end = .キー.各 行う |k| .削除(k) 場合 [k].nil? end @options = () WriteConcernオブジェクトのサポート では、@options[:write_concern].is_a?(WriteConcern::Base) の場合 ##インスタンスをキャッシュして、不必要に再構築されないようにします。 # @write_concern = @options[:write_concern] #@options[:write_concern] = @write_concern.options # end @options.freeze (address, is_srv: uri.is_a?(URI::SRVProtocol)) = @options.dup .削除(:server_api) @database = Database.新着情報(自己, @options[:database], ) # イベント サブスクライブが有効になるように一時的にモニタリングを設定します クラスターがなくてもセットアップする @monitoring = モニタリング.新着情報(@options) sdam_proc.を呼び出す(自己) 場合 sdam_proc @connect_lock = ミューテックス.新着情報 @retry_ policies = 再試行可能::RetryPolicy.新着情報( max_retry: @options[:max_adapactive_retry] || 再試行可能::バックプレッシャー::DEFAULT_MAX_RETRIES ) @connect_lock.同期 行う @cluster = クラスター.新着情報( address, @monitoring, .merge(srv_uri: srv_uri) ) end begin # モニタリングの設定を解除します。今後はクラスターから排除されます delete_instance_variable(:@monitoring) 場合 @options[: auto_encryption_options] @connect_lock.同期 行う build_encrypter end end ヘルプ 標準エラー begin @cluster.閉じる ヘルプ 標準エラー => e log_警告("クライアントコンストラクターの例外ハンドラーでクラスターを閉じる際のエラー: #{e.クラス}: #{e }) # この例外を削除して、元の例外が発生するようにする end 発生 end return ただし、 ブロック_指定 begin ノードの数(自己) 保証する 閉じる end end |
インスタンス属性の詳細
#クラスター= Mongo::Cluster (readonly)
クラスター クライアント用サーバーのクラスターを返します。
143 144 145 |
# ファイル 'lib/mongo/ クライアント', 行 143 デフォルト クラスター @cluster end |
#database ⇒ Mongo::Database (readonly)
クライアントが操作しているデータベースを返します。
146 147 148 |
# ファイル 'lib/mongo/ クライアント', 行 146 デフォルト database @database end |
#暗号化= Mongo::Crypt::AutoEncrypter (readonly)
自動暗号化の動作をカプセル化するオブジェクトを返します。
153 154 155 |
# ファイル 'lib/mongo/ クライアント', 行 153 デフォルト 暗号化 @encrypter end |
オプション=ハッシュ(読み取り専用)
オプション 構成オプションを返します。
149 150 151 |
# ファイル 'lib/mongo/ クライアント', 行 149 デフォルト @options end |
#retry_olicy ⇒ Mongo::Retryable::RetryPolicy (readonly)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
バックプレッシャーとアダプティブ再試行の再試行ポリシーを返します。
158 159 160 |
# ファイル 'lib/mongo/ クライアント', 行 158 デフォルト retry_ policies @retry_ policies end |
クラスメソッドの詳細
。 Canonicalize_ruby_options (オプション) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたオプションで認証メカニズムのプロパティを小文字にする(指定されている場合)は、オプションを Options::Redact のインスタンスに変換します。
1177 1178 1179 1180 1181 1182 1183 1184 |
# ファイル 'lib/mongo/ クライアント', 行 1177 デフォルト () オプション::編集済み.新着情報(ハッシュ[.map 行う |k, v| 場合 [ :auth_mech_properties, ' auth_mech_properties ' ].include?(k) & & v v = ハッシュ[v.map { |pk, pv| [ pk.ダウンケース, pv ] }] end [ k, v ] end]) end |
インスタンス メソッドの詳細
# == (その他) === (その他 ) ==================================================
このクライアントが別のオブジェクトと同等かどうかを判断します。
187 188 189 190 191 |
# ファイル 'lib/mongo/ クライアント', 行 187 デフォルト ==(その他) return false ただし、 その他.is_a?(クライアント) クラスター == その他.クラスター & & == その他. end |
# [] (collection_name, options = {}) = Mongo::Collection
指定されたコレクション名のコレクション オブジェクトを取得します。
205 206 207 |
# ファイル 'lib/mongo/ クライアント', 行 205 デフォルト [](collection_name, = {}) database[collection_name, ] end |
#閉じる= true
すべての接続を閉じます。
878 879 880 881 882 883 884 |
# ファイル 'lib/mongo/ クライアント', 行 878 デフォルト 閉じる @connect_lock.同期 行う @closed = true do_close end true end |
# close_encrypter = true
エンクリプタを閉じ、自動暗号化リソースをクリーンアップします。
889 890 891 892 893 |
# ファイル 'lib/mongo/ クライアント', 行 889 デフォルト close_encrypter @encrypter.閉じる 場合 @encrypter true end |
#閉じました=ブール値
869 870 871 |
# ファイル 'lib/mongo/ クライアント', 行 869 デフォルト 閉じましたか !!@closed end |
# cluster_options =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 |
# ファイル 'lib/mongo/ クライアント', 行 631 デフォルト # 異なる CRUD_OPTIONS を持つ新しいクライアントが場合にクラスターを共有します # が要求されます。したがって、クラスターは次のいずれかを取得してはなりません インスタンス化に関する#オプション .拒否 行う |キー, _value| CRUD_OPTIONS.include?(キー.to_sym) end.merge( # ただし、認証のためにデータベースを元に戻す必要がある場合... database: [:database], レガシー互換性のためにこれらのオプションを に含めますが、次の点に注意してください クライアントとクラスターの 値は一致する必要はありません。 アプリケーションはこれらの値をクラスターではなくクライアントから読み取る必要があります max_read_retrys: [:max_read_retry], read_retry_Interval: [:read_retry_Interval], 追跡: 追跡 ).タップ 行う || クライアントがすでにクラスターを持っている場合は、 srv_uri を新しいクラスターに転送します SRV モニタリングを維持するための # クラスター。 クライアントが新しい場合、 コンストラクターが srv_uri を手動で設定する。 .update(srv_uri: クラスター.[:srv_uri]) 場合 クラスター end end |
# database_names (filter = {}、opts = {{}) = 配列 =<String>
すべてのデータベースの名前を取得します。
947 948 949 |
# ファイル 'lib/mongo/ クライアント', 行 947 デフォルト database_names(フィルター = {}, ops = {}) list_databases(フィルター, true, ops).コレクション { |info| info[' name '] } end |
#encrypted_fields_map = ハッシュ | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
クライアントの作成時に指定された場合、暗号化されたフィールド マップ ハッシュを返します。
1191 1192 1193 |
# ファイル 'lib/mongo/ クライアント', 行 1191 デフォルト encryption_fields_map @encrypted_fields_map ||= @options.fetch(: auto_encryption_options, {})[:encrypted_fields_map] end |
#get_session(options = {}) ⇒ Session | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
可能な場合、操作に使用するセッションを返します。
:session オプションが設定されている場合、 はそのセッションを検証し、それを返します。 それ以外の場合、配置でセッションがサポートされている場合は、 は新しいセッションを作成し、それを返します。 新しいセッションが作成される際、 :暗黙的オプションが指定されている場合は、セッションは暗黙的になります(ライフサイクルはドライバーによって管理されます)。それ以外の場合は、セッションは明示的になります(アプリケーションによって管理されるライフサイクル)。 配置がセッションをサポートしていない場合、 は nil を返します。
1135 1136 1137 1138 1139 |
# ファイル 'lib/mongo/ クライアント', 行 1135 デフォルト get_session( = {}) get_session.() ヘルプ エラー::SessionsNotSupported nil end |
#ハッシュ=整数
クライアントのハッシュ値を取得します。
217 218 219 |
# ファイル 'lib/mongo/ クライアント', 行 217 デフォルト ハッシュ [ クラスター, ].ハッシュ end |
詳しくは、 を 検査しstring ます
クライアントの検査を string として取得します。
693 694 695 |
# ファイル 'lib/mongo/ クライアント', 行 693 デフォルト 検査する " #< Mongo::Client: 0 x #{ object_id } cluster= #{ cluster . Summary } > " end |
# list_databases (filter = {}、name_only = false、ops = {}) = Array ={}<Hash>
各データベースの情報を取得します。
See https://mongodb.com/ja-jp/docs/manual/reference/command/listDatabases/
for more information and usage.
978 979 980 981 982 983 984 985 986 987 |
# ファイル 'lib/mongo/ クライアント', 行 978 デフォルト list_databases(フィルター = {}, name_only = false, ops = {}) cmd = { listDatabases: 1 } cmd[:nameOnly] = !!name_only cmd[: フィルター] = フィルター ただし、 フィルター.空の場合 cmd[: authorizedDatabases] = true 場合 ops[: authorized_databases] 使用(Database::管理者) .database .read_command(cmd, ops.merge(op_name: 'listDatabases')) .最初に[Database::データベース] end |
#list_mongo_databases(filter = {}, opts = {}) ⇒ Array<Mongo::Database>
Mongo::Database オブジェクトの一覧を返します。
1004 1005 1006 1007 1008 |
# ファイル 'lib/mongo/ クライアント', 行 1004 デフォルト list_mongo_databases(フィルター = {}, ops = {}) database_names(フィルター, ops).コレクション 行う |name| Database.新着情報(自己, name, ) end end |
# max_read_retry =整数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
レガシー読み取り操作を使用する場合にクライアントが読み取り操作を再試行できる最大回数を取得します。
661 662 663 |
# ファイル 'lib/mongo/ クライアント', 行 661 デフォルト max_read_retry [:max_read_retry] || クラスター::MAX_READ_RETRIES end |
# max_write_retry =整数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
レガシー書込み再試行を使用する場合にクライアントが書込み操作を再試行できる最大回数を取得します。
681 682 683 |
# ファイル 'lib/mongo/ クライアント', 行 681 デフォルト max_write_retry [:max_write_retry] || クラスター::MAX_WRITE_RETRIES end |
#read_concern =ハッシュ
このクライアントの 読み取り保証 (read concern) を取得します。
852 853 854 |
# ファイル 'lib/mongo/ クライアント', 行 852 デフォルト read_concern [:read_concern] end |
#read_preference = BSON::Document
クライアントに渡されたオプションから読み込み設定 (read preference) を取得します。
741 742 743 |
# ファイル 'lib/mongo/ クライアント', 行 741 デフォルト read_preference @read_preference ||= [:read] end |
# read_retry_Interval =浮動小数点数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
レガシー読み取り再試行を使用する場合の読み取り再試行の間隔を秒単位で取得します。
671 672 673 |
# ファイル 'lib/mongo/ クライアント', 行 671 デフォルト read_retry_Interval [:read_retry_Interval] || クラスター::READ_RETRY_Interval end |
#再接続= true
クライアントを再接続します。
903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 |
# ファイル 'lib/mongo/ クライアント', 行 903 デフォルト 再接続 address = クラスター.address.map(&:to_s) @connect_lock.同期 行う begin do_close ヘルプ 標準エラー nil end @cluster = クラスター.新着情報(address, モニタリング, ) build_encrypter 場合 @options[: auto_encryption_options] @closed = false end true end |
# server_selector = Mongo::ServerSelector
サーバー セレクターを取得します。 クライアント オプションで定義された読み取り設定を使用するか、デフォルトで プライマリ サーバー セレクターに設定されます。
719 720 721 722 723 724 725 |
# ファイル 'lib/mongo/ クライアント', 行 719 デフォルト server_selector @server_selector ||= 場合 read_preference ServerSelector.得る(read_preference) else ServerSelector.プライマリ end end |
# start_session (オプション = {}) =セッション
セッションは複数のスレッドで一度に使用することはできません。セッション オブジェクトはスレッドセーフではありません。
セッションを開始します。
配置がセッションをサポートしていない場合、 は Mongo::Error::InvalidSession を発生させます。 この例外は、ドライバーがデータを保持するサーバーに接続されていない場合(フェイルオーバー中など)でも発生する可能性があります。
1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 |
# ファイル 'lib/mongo/ クライアント', 行 1029 デフォルト start_session( = {}) セッション = get_session.(.merge(implicit: false)) 場合 ブロック_指定 begin ノードの数 セッション 保証する セッション.end_session end else セッション end end |
#のサマリー= string
返されるサマリー string の正確な形式と構成は、ドライバーの公開APIの一部ではなく、いつでも変更される可能性があります。
クライアントの状態の概要を取得します。
705 706 707 |
# ファイル 'lib/mongo/ クライアント', 行 705 デフォルト 概要 " #< クライアント クラスター= #{クラスター.の概要} > " end |
#timeout_ms ⇒ Integer | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
timeout_ms オプションの値が設定されている場合は返します。
1197 1198 1199 |
# ファイル 'lib/mongo/ クライアント', 行 1197 デフォルト timeout_ms @options[:timeout_ms] end |
#timeout_sec ⇒ Float | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
timeout_ms オプションの値を秒に変換して返します。
1203 1204 1205 1206 1207 1208 1209 |
# ファイル 'lib/mongo/ クライアント', 行 1203 デフォルト timeout_second 場合 timeout_ms.nil? nil else timeout_ms / 1_000.0 end end |
# tracker ~ トラッキング:::Tlaser | nil
このクライアント用に構成されたトレーサーを取得します。
1214 1215 1216 1217 1218 1219 1220 1221 |
# ファイル 'lib/mongo/ クライアント', 行 1214 デフォルト 追跡 tracking_opts = @options[:書込み] || {} @tracer ||= トレース.create_tracer( 次の場合に有効 tracking_opts[:enabled], query_text_max_Length: tracking_opts[:query_text_max_Length], Ol_tracer: tracking_opts[:tracer] ) end |
#update_options(new_options) ⇒ Hash
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このクライアントのオプションを new_options から更新し、すべてのオプションを検証します。
新しいオプションは、さまざまなルールに従って変換される可能性があります。 クライアントに実際に適用されたオプションの最終ハッシュが返されます。
オプションの検証に失敗した場合、このメソッドは警告または例外を発生させる可能性があります。 このメソッドで例外が発生した場合、クライアントは破棄される必要があります(コンストラクターが例外を発生した場合と同様)。
806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 |
# ファイル 'lib/mongo/ クライアント', 行 806 デフォルト () = @options = 自己.クラス.( || {}) ().タップ 行う |ops| # オプションは固定されています = @options.dup .削除(:write) 場合 [:write] & & ops[:write_concern] .削除(:write_concern) 場合 [:write_concern] & & ops[:write] .update(ops) @options = .freeze = @options[: auto_encryption_options] != [: auto_encryption_options] # 新しい auto_encryption_options がある場合は、新しい暗号化プログラムを作成します。 # それ以外の場合は、新しいクライアントが # の元のクライアントです。 # auto_encryption_options が nil の場合は、 @encrypter を nil に設定しますが、次は行わないでください # 暗号化プログラムは元のクライアントが引き続き使用する可能性があるため、閉じます。 場合 @options[: auto_encryption_options] & & @connect_lock.同期 行う build_encrypter end elsif @options[: auto_encryption_options].nil? @connect_lock.同期 行う @encrypter = nil end end end end |
# use (name)= Mongo::Client
新しいクライアントはクラスターを元のクライアントと共有し、その結果、モニタリング インスタンスとモニタリング イベント サブスクライブも共有します。
指定された名前のデータベースを使用し、このクライアントで構成された他のオプションを使用するように構成された新しいクライアントを作成します。
760 761 762 |
# ファイル 'lib/mongo/ クライアント', 行 760 デフォルト 使用(name) と共に(database: name) end |
多数表示 (パイプライン = []、オプション = {}) = ChangeStream
変更ストリームでは '過半数' の読み取り保証 (read concern)のみが許可されます。
このヘルパー メソッドは、再開可能性をサポートするために、 $changeStream ステージで未加工の集計を実行するよりも推奨されます。
クライアントのクラスターで発生するすべての変更について通知を送信するようユーザーがリクエストできるようにします。
1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 |
# ファイル 'lib/mongo/ クライアント', 行 1104 デフォルト 監視(パイプライン = [], = {}) return 使用(Database::管理者).監視(パイプライン, ) ただし、 database.name == Database::管理者 = .dup [: cursor_type] = :tailable_await 場合 [:max_await_time_ms] mongo::コレクション::ビュー::ChangeStream.新着情報( mongo::コレクション::ビュー.新着情報(自己[" #{データベース::コマンド} .aggregate "], {}, ), パイプライン, mongo::コレクション::ビュー::ChangeStream::クラスターのライブ移行, ) end |
( new_options = nil) ================================================
指定されたオプションに応じて、返されたクライアントは元のクライアントとクラスターを共有するか、新しいクラスターで作成される場合があります。 新しいクラスターが作成される場合、新しいクライアントのモニタリング イベント サブスクライブはデフォルトのイベント サブスクライブに設定され、元のクライアント上のサブスクライブはいずれもコピーされません。
渡されたオプションがこのクライアントの既存のオプションにマージされて、新しいクライアントを作成します。 元のクライアントを変更せずに特定のオプションを変更するだけの に便利です。
782 783 784 785 786 787 788 789 790 |
# ファイル 'lib/mongo/ クライアント', 行 782 デフォルト と共に( = nil) 複製.タップ 行う |クライアント| ops = クライアント.( || オプション::編集済み.新着情報) Database.create(クライアント) # 影響を受けるオプションが ある場合、同じクラスターを使用できません # が変更されました。 クラスター.create(クライアント, 監視: ops[:monitoring]) 場合 (ops) end end |
# with_session(オプション = {}) ⇒ オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
可能な場合、操作に使用するセッションを作成し、それを指定された ブロックに渡す。
:session オプションが設定されている場合、 はそのセッションを検証し、それを使用します。 それ以外の場合、配置でセッションがサポートされている場合は、 では新しいセッションが作成され、それが使用されます。 新しいセッションが作成される際、 :暗黙的オプションが指定されている場合は、セッションは暗黙的になります(ライフサイクルはドライバーによって管理されます)。それ以外の場合は、セッションは明示的になります(アプリケーションによって管理されるライフサイクル)。 配置がセッションをサポートしていない場合、 は nil をブロックに提供します。
ブロックが終了すると、セッションが作成され暗黙的であった場合、または暗黙的なセッションが渡された場合、セッションは終了され、利用可能なセッションのプールに返されます。
1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 |
# ファイル 'lib/mongo/ クライアント', 行 1161 デフォルト with_session( = {}) # TODO: これを Ruby- 3174で追加します。 #assert_not_closed セッション = get_session() ノードの数 セッション 保証する セッション.end_session 場合 セッション & & セッション.implicit? end |
#write_concern = Mongo::WriteConcern
このクライアントの 書込み保証 (write concern) を取得します。 オプションが指定されていない場合は、デフォルトの単一サーバー確認応答が使用されます。
865 866 867 |
# ファイル 'lib/mongo/ クライアント', 行 865 デフォルト write_concern @write_concern ||= WriteConcern.得る([:write_concern] || [:write]) end |