クラス: Mongo::Client
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Client
- 次による拡張機能。
- 転送可能
- 次のことが含まれます。
- ログ記録可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/client.rb
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, 現在ここに存在できないオプションは次のとおりです。 # # :server_Selection_timeout # サーバー選択タイムアウトはクラスターコンストラクターが計算するために使用する # 互換性モードでの初期スキャンの待機時間 クラスターが初期化されると、このタイムアウトは使用されなくなります。 サーバー セレクターの読み取りサーバー選択がタイムアウトになりました # クラスター、この動作は Cluster#next_primary で必要です。 # は引数を取りません。 next_primary が削除されたときに、元に戻すことができます : 異なるサーバー選択タイムアウトを持つ同じクラスター オブジェクトを使用します。 ].freeze
- VALID_OPTIONS =
有効なクライアント オプション。
[ :app_name, :auth_mech, :auth_mech_properties, :auth_source, : auto_encryption_options, :bg_error_backtrace, :クリーンアップ, :compressors, :direct_ connection, :connect, :connect_timeout, :database, : heartbeat_frequency, :id_genator, :load_ ユーザー分散, :local_threshold, :logger, :log_prefix, :max_idle_time, :max_Pool_size, :max_read_retry, :max_write_retry, :min_Pool_size, :monitoring, :monitoring_io, :password, :プラットフォーム, :populator_io, :read, :read_concern, :read_retry_Interval, :replica_set, :resolve_options, :retry_reads, :retry_writes, :scan, :sdam_proc, :server_api, :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_Certificate, :ssl_verify_hostname, :ssl_verify_OCSP_endpoint, :trunc_logs, :user, :wait_queue_timeout, :ラップ_ライブラリ, :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
オプション 構成オプション。
クラスメソッドの概要を折りたたむ
-
。 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
クライアントの状態の概要を取得します。
-
#update_options(new_options) ⇒ Hash
private
このクライアントのオプションを new_options から更新し、すべてのオプションを検証します。
-
# use (name)=Mongo::Client
指定された名前のデータベースを使用し、このクライアントで構成された他のオプションを使用するように構成された新しいクライアントを作成します。
-
多数表示(パイプライン = []、オプション = {}) = ChangeStream
MongoDB サーバーのバージョン3.6以降、$changeStream" パイプライン ステージは集計フレームワークでサポートされています。
-
( new_options = nil)================================================
渡されたオプションがこのクライアントの既存のオプションにマージされて、新しいクライアントを作成します。
-
# with_session (オプション = {}, &stream) = オブジェクト
private
可能な場合、操作に使用するセッションを作成し、それを指定された ブロックに渡す。
-
#write_concern = Mongo::WriteConcern
このクライアントの 書込み保証 (write concern) を取得します。
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
コンストラクターの詳細
#初期化(address_or_uri、オプション = nil) = nil) =クライアント
新しいドライバー クライアントをインスタンス化します。
489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 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 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行489 デフォルト 初期化(address_or_uri, = nil) = ? .dup : {} srv_uri = nil 場合 address_or_uri.is_a?(::文字列) uri = URI.得る(address_or_uri, ) 場合 uri.is_a?(URI::SRVProtocol) URI が #SRV URI の場合、これを書き留めておきます。 トポロジーがシャーディングされたクラスターの場合は、 SRV ポーリング。 srv_uri = uri end address = uri.サーバー = uri..dup :write と :write_concern の特殊処理: クライアント Ruby を許可 オプションを使用すると、Ruby オプションが 非推奨 : 書込み (write) キーと URI オプションが現在の # :write_concern キー 場合 [:write] .削除(:write_concern) end = .merge() @srv_records = uri.srv_records else address = address_or_uri address.各 行う |addr| 場合 addr =~ / \Amongodb(\+srv)?:\/\/ /i 発生 ArgumentError, " Host ' #{ addr }にはプロトコルを含めることはできません。配列を使用しないということはありますか。 end end @srv_records = nil end = 自己.クラス.() # サーバー 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 end # クライアントでのみ使用されるため、 sam_process の特別な処理 # 構築 sdam_proc = .削除(:sdam_proc) # glaspi service_name の場合、デフォルト オプションは ハッシュで指定されます #(最上位レベルから 1 レベルダウン)。 = () .各 行う |k, v| default_v = [k] 場合 ハッシュ === default_v v = default_v.merge(v) end [k] = v end = .キー.各 行う |k| 場合 [k].nil? .削除(k) end end @options = () =開始 WriteConcern オブジェクト サポート の場合 @options[:write_concern].is_a?(WriteConcern::Base) # インスタンスをキャッシュして、不必要に再構築されないようにします。 @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =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.を呼び出す(自己) end @connect_lock = ミューテックス.新着情報 @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 場合 ブロック_指定 begin ノードの数(自己) 保証する 閉じる end end end |
インスタンス属性の詳細
#クラスター= Mongo::Cluster (readonly)
クラスター クライアント用サーバーのクラスターを返します。
137 138 139 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行137 デフォルト クラスター @cluster end |
#database ⇒ Mongo::Database (readonly)
クライアントが操作しているデータベースを返します。
140 141 142 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行140 デフォルト database @database end |
#暗号化= Mongo::Crypt::AutoEncrypter (readonly)
自動暗号化の動作をカプセル化するオブジェクトを返します。
147 148 149 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行147 デフォルト 暗号化 @encrypter end |
オプション=ハッシュ(読み取り専用)
オプション 構成オプションを返します。
143 144 145 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行143 デフォルト @options end |
クラスメソッドの詳細
。 Canonicalize_ruby_options (オプション) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたオプションで認証メカニズムのプロパティを小文字にする(指定されている場合)は、オプションを Options::Redact のインスタンスに変換します。
1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行1161 デフォルト () オプション::編集済み.新着情報(ハッシュ[.map 行う |k, v| 場合 k == :auth_mech_properties || k == ' auth_mech_properties ' 場合 v v = ハッシュ[v.map { |pk, pv| [pk.ダウンケース, pv] }] end end [k, v] end]) end |
インスタンス メソッドの詳細
# == (その他) === (その他 ) ==================================================
このクライアントが別のオブジェクトと同等かどうかを判断します。
176 177 178 179 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行176 デフォルト ==(その他) return false ただし、 その他.is_a?(クライアント) クラスター == その他.クラスター & & == その他. end |
# [] (collection_name, options = {}) = Mongo::Collection
指定されたコレクション名のコレクション オブジェクトを取得します。
193 194 195 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行193 デフォルト [](collection_name, = {}) database[collection_name, ] end |
#閉じる= true
すべての接続を閉じます。
872 873 874 875 876 877 878 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行872 デフォルト 閉じる @connect_lock.同期 行う @closed = true do_close end true end |
# close_encrypter = true
エンクリプタを閉じ、自動暗号化リソースをクリーンアップします。
883 884 885 886 887 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行883 デフォルト close_encrypter @encrypter.閉じる 場合 @encrypter true end |
#閉じました=ブール値
863 864 865 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行863 デフォルト 閉じましたか !!@closed end |
# cluster_options =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行618 デフォルト # 異なる CRUD_OPTIONS を持つ新しいクライアントが場合にクラスターを共有します # が要求されます。したがって、クラスターは次のいずれかを取得してはなりません インスタンス化に関する#オプション .拒否 行う |キー, 価値| 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 end |
# database_names (filter = {}、opts = {{}) = 配列 =<String>
すべてのデータベースの名前を取得します。
936 937 938 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行936 デフォルト database_names(フィルター = {}, ops = {}) list_databases(フィルター, true, ops).コレクション{ |info| info[' name '] } end |
#encrypted_fields_map = ハッシュ | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
クライアントの作成時に指定された場合、暗号化されたフィールド マップ ハッシュを返します。
1177 1178 1179 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行1177 デフォルト encryption_fields_map @encrypted_fields_map ||= @options.fetch(: auto_encryption_options, {})[:encrypted_fields_map] end |
#get_session(options = {}) ⇒ Session | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
可能な場合、操作に使用するセッションを返します。
:session オプションが設定されている場合、 はそのセッションを検証し、それを返します。 それ以外の場合、配置でセッションがサポートされている場合は、 は新しいセッションを作成し、それを返します。 新しいセッションが作成される際、 :暗黙的オプションが指定されている場合は、セッションは暗黙的になります(ライフサイクルはドライバーによって管理されます)。それ以外の場合は、セッションは明示的になります(アプリケーションによって管理されるライフサイクル)。 配置がセッションをサポートしていない場合、 は nil を返します。
1117 1118 1119 1120 1121 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行1117 デフォルト get_session( = {}) get_session.() ヘルプ エラー::SessionsNotSupported nil end |
#ハッシュ=整数
クライアントのハッシュ値を取得します。
205 206 207 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行205 デフォルト ハッシュ [クラスター, ].ハッシュ end |
詳しくは、 を 検査しstring ます
クライアントの検査を string として取得します。
681 682 683 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行681 デフォルト 検査する " #< Mongo::Client: 0 x #{ object_id } cluster= #{ cluster . Summary } > " end |
# list_databases (filter = {}、name_only = false、ops = {}) = Array ={}<Hash>
各データベースの情報を取得します。
962 963 964 965 966 967 968 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行962 デフォルト 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).最初に[Database::データベース] end |
#list_mongo_databases(filter = {}, opts = {}) ⇒ Array<Mongo::Database>
Mongo::Database オブジェクトの一覧を返します。
985 986 987 988 989 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行985 デフォルト list_mongo_databases(フィルター = {}, ops = {}) database_names(フィルター, ops).コレクション 行う |name| Database.新着情報(自己, name, ) end end |
# max_read_retry =整数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
レガシー読み取り操作を使用する場合にクライアントが読み取り操作を再試行できる最大回数を取得します。
649 650 651 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行649 デフォルト max_read_retry [:max_read_retry] || クラスター::MAX_READ_RETRIES end |
# max_write_retry =整数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
レガシー書込み再試行を使用する場合にクライアントが書込み操作を再試行できる最大回数を取得します。
669 670 671 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行669 デフォルト max_write_retry [:max_write_retry] || クラスター::MAX_WRITE_RETRIES end |
#read_concern =ハッシュ
このクライアントの 読み取り保証 (read concern) を取得します。
846 847 848 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行846 デフォルト read_concern [:read_concern] end |
#read_preference = BSON::Document
クライアントに渡されたオプションから読み込み設定 (read preference) を取得します。
729 730 731 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行729 デフォルト read_preference @read_preference ||= [:read] end |
# read_retry_Interval =浮動小数点数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
レガシー読み取り再試行を使用する場合の読み取り再試行の間隔を秒単位で取得します。
659 660 661 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行659 デフォルト read_retry_Interval [:read_retry_Interval] || クラスター::READ_RETRY_Interval end |
#再接続= true
クライアントを再接続します。
897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行897 デフォルト 再接続 address = クラスター.address.map(&:to_s) @connect_lock.同期 行う do_close ヘルプ nil @cluster = クラスター.新着情報(address, モニタリング, ) 場合 @options[: auto_encryption_options] build_encrypter end @closed = false end true end |
# server_selector = Mongo::ServerSelector
サーバー セレクターを取得します。 クライアント オプションで定義された読み取り設定を使用するか、デフォルトで プライマリ サーバー セレクターに設定されます。
707 708 709 710 711 712 713 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行707 デフォルト server_selector @server_selector ||= 場合 read_preference ServerSelector.得る(read_preference) else ServerSelector.プライマリ end end |
# start_session (オプション = {}) =セッション
セッションは複数のスレッドで一度に使用することはできません。セッション オブジェクトはスレッドセーフではありません。
セッションを開始します。
配置がセッションをサポートしていない場合、 は Mongo::Error::InvalidSession を発生させます。 この例外は、ドライバーがデータを保持するサーバーに接続されていない場合(フェイルオーバー中など)でも発生する可能性があります。
1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行1010 デフォルト start_session( = {}) セッション = get_session.(.merge(implicit: false)) 場合 ブロック_指定 begin ノードの数 セッション 保証する セッション.end_session end else セッション end end |
#のサマリー= string
返されるサマリーstringの正確な形式と構成は、ドライバーの公開APIの一部ではなく、いつでも変更される可能性があります。
クライアントの状態の概要を取得します。
693 694 695 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行693 デフォルト 概要 " #< クライアント クラスター= #{クラスター.の概要} > " end |
#update_options(new_options) ⇒ Hash
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このクライアントのオプションを new_options から更新し、すべてのオプションを検証します。
新しいオプションは、さまざまなルールに従って変換される可能性があります。 クライアントに実際に適用されたオプションの最終ハッシュが返されます。
オプションの検証に失敗した場合、このメソッドは警告または例外を発生させる可能性があります。 このメソッドで例外が発生した場合、クライアントは破棄される必要があります(コンストラクターが例外を発生した場合と同様)。
796 797 798 799 800 801 802 803 804 805 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 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行796 デフォルト () = @options = 自己.クラス.( || {}) ().タップ 行う |ops| # オプションは固定されています = @options.dup 場合 [:write] & & ops[:write_concern] .削除(:write) end 場合 [:write_concern] & & ops[:write] .削除(:write_concern) end .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
新しいクライアントはクラスターを元のクライアントと共有し、その結果、モニタリング インスタンスとモニタリング イベント サブスクライブも共有します。
指定された名前のデータベースを使用し、このクライアントで構成された他のオプションを使用するように構成された新しいクライアントを作成します。
748 749 750 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行748 デフォルト 使用(name) と共に(database: name) end |
多数表示 (パイプライン = []、オプション = {}) = ChangeStream
変更ストリームでは「majority」の読み取り保証のみが許可されます。
このヘルパー メソッドは、再開可能性をサポートするために、 $changeStream ステージで未加工の集計を実行するよりも推奨されます。
MongoDB サーバーのバージョン3.6以降、$changeStream" パイプライン ステージは集計フレームワークでサポートされています。 バージョン4.0以降、このステージでは、クライアントのクラスターで発生するすべての変更に対して通知が送信されるようリクエストできます。
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行1087 デフォルト 監視(パイプライン = [], = {}) return 使用(Database::管理者).監視(パイプライン, ) ただし、 database.name == Database::管理者 = .dup [:await_data] = true 場合 [:max_await_time_ms] mongo::コレクション::ビュー::ChangeStream.新着情報( mongo::コレクション::ビュー.新着情報(自己[" #{データベース::コマンド} .aggregate "], {}, ), パイプライン, mongo::コレクション::ビュー::ChangeStream::クラスターのライブ移行, ) end |
( new_options = nil) ================================================
指定されたオプションに応じて、返されたクライアントは元のクライアントとクラスターを共有するか、新しいクラスターで作成される場合があります。 新しいクラスターが作成される場合、新しいクライアントのモニタリング イベント サブスクライブはデフォルトのイベント サブスクライブに設定され、元のクライアント上のサブスクライブはいずれもコピーされません。
渡されたオプションがこのクライアントの既存のオプションにマージされて、新しいクライアントを作成します。 元のクライアントを変更せずに特定のオプションを変更するだけの に便利です。
770 771 772 773 774 775 776 777 778 779 780 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行770 デフォルト と共に( = nil) 複製.タップ 行う |クライアント| ops = クライアント.( || オプション::編集済み.新着情報) Database.create(クライアント) # 影響を受けるオプションが ある場合、同じクラスターを使用できません # が変更されました。 場合 (ops) クラスター.create(クライアント, 監視: ops[:monitoring]) end end end |
# with_session (オプション = {}, &stream) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
可能な場合、操作に使用するセッションを作成し、それを指定された ブロックに渡す。
:session オプションが設定されている場合、 はそのセッションを検証し、それを使用します。 それ以外の場合、配置でセッションがサポートされている場合は、 では新しいセッションが作成され、それが使用されます。 新しいセッションが作成される際、 :暗黙的オプションが指定されている場合は、セッションは暗黙的になります(ライフサイクルはドライバーによって管理されます)。それ以外の場合は、セッションは明示的になります(アプリケーションによって管理されるライフサイクル)。 配置がセッションをサポートしていない場合、 は nil をブロックに提供します。
ブロックが終了すると、セッションが作成され暗黙的であった場合、または暗黙的なセッションが渡された場合、セッションは終了され、利用可能なセッションのプールに返されます。
1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行1143 デフォルト with_session( = {}, &ブロック) # TODO: これを Ruby- 3174で追加します。 #assert_not_closed セッション = get_session() ノードの数 セッション 保証する 場合 セッション & & セッション.implicit? セッション.end_session end end |
#write_concern = Mongo::WriteConcern
このクライアントの 書込み保証 (write concern) を取得します。 オプションが指定されていない場合は、デフォルトの単一サーバー確認応答が使用されます。
859 860 861 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client.rb', 行859 デフォルト write_concern @write_concern ||= WriteConcern.得る([:write_concern] || [:write]) end |