클래스: Mongo::Client
- 상속:
-
객체
- 객체
- Mongo::Client
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 로깅 가능
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/client.rb
개요
클라이언트는 드라이버의 진입점이며 상호 작용할 기본 객체입니다.
상수 요약 접기
- CRUD_OPTIONS =
cluster 및 해당 하위 구성 요소의 동작에 영향을 주지 않는 옵션입니다.
[ :auto_encryption_options, :database, :read, :read_concern, :write, :write_concern, :retry_reads, :max_read_retries, :read_retry_interval, :retry_writes, :max_write_retries, # 현재 여기에 있을 수 없는 옵션: # # :server_selection_timeout # MongoDB Server 선택 시간 제한은 클러스터 생성자가 다음을 파악하는 데 사용됩니다. # 호환 모드에서 초기 스캔을 기다리는 시간(단, 한 번) # 클러스터가 초기화되면 더 이상 이 제한 시간을 사용하지 않습니다. # 유감스럽게도 서버 선택기는 서버 선택 시간 초과를 읽습니다. # 클러스터이며 이 동작은 Cluster#next_primary에 필요합니다. # 인수를 받지 않습니다. Next_primary가 제거되면 다시 살펴볼 수 있습니다. # 서버 선택 시간 초과가 다른 동일한 클러스터 객체를 사용합니다. ].동결
- VALID_OPTIONS =
유효한 클라이언트 옵션입니다.
[ :app_name, :auth_mech, :auth_mech_properties, :auth_source, :auto_encryption_options, :bg_error_backtrace, :cleanup, :compressors, :direct_connection, :connect, :connect_timeout, :database, :하트비트_빈도, :id_generator, :load_balancing, :local_threshold, :logger, :log_prefix, :max_idle_time, :max_pool_size, :max_read_retries, :max_write_retries, :min_pool_size, :monitoring, :monitoring_io, :password, :platform, :populator_io, :read, :read_concern, :read_retry_interval, :replica_set, :resolv_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, :truncate_logs, : user, :wait_queue_timeout, :wrapping_libraries, :write, :write_concern, :zlib_compression_level, ].동결
- VALID_COMPRESSORS =
드라이버에서 지원하는 압축 알고리즘입니다.
[ mongo::protocol::압축::zstd, mongo::protocol::압축::스내피, mongo::protocol::압축::zlib ].동결
- VALID_SERVER_API_VERSIONS =
알려진 서버 API 버전.
%w( 1 ).동결
Loggable에서 포함된 상수
인스턴스 속성 요약 접기
-
#cluster ⇒ Mongo::Cluster
읽기 전용
클러스터 클라이언트용 서버의 클러스터입니다.
-
#database ⇒ Mongo::Database
읽기 전용
데이터베이스 클라이언트 가 작동 중인 데이터베이스입니다.
-
#Encrypter ⇒ Mongo::Crypt::AutoEncrypter
읽기 전용
자동 암호화 동작을 캡슐화하는 객체입니다.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 구성 옵션입니다.
클래스 메서드 요약 접기
-
.canonicalize_ruby_options(options) ⇒ 객체
비공개
지정된 옵션에 인증 메커니즘 속성이 소문자로 지정된 경우 해당 옵션을 Options::Redacted의 인스턴스로 변환합니다.
인스턴스 메서드 요약 접기
-
#==(기타) ⇒ 참, 거짓 (동의어: #eql?)
이 클라이언트가 다른 객체와 동일한지 확인합니다.
-
#[](collection_name, options = {}) ⇒ Mongo::Collection
제공된 컬렉션 이름에 대한 컬렉션 객체 를 가져옵니다.
-
#닫기 ⇒ true
모든 연결을 닫습니다.
-
#close_encrypter ⇒ true
암호화기를 닫고 자동 암호화 리소스를 정리합니다.
- #닫았나요? ⇒ 부울
- #cluster_options ⇒ 객체 비공개
-
#database_names(filter = {}, opts = {}) ⇒ Array<String>
모든 데이터베이스의 이름을 가져옵니다.
-
#encryption_fields_map ⇒ 해시 | nil
비공개
클라이언트를 생성할 때 암호화된 필드 맵 해시를 제공한 경우 반환합니다.
-
#get_session(options = {}) ⇒ Session | nil
비공개
가능한 경우 작업에 사용할 세션을 반환합니다.
-
#해시 ⇒ 정수
클라이언트 의 해시 값을 가져옵니다.
-
#initialize(addresses_or_uri, options = nil) ⇒ 클라이언트
생성자
새 드라이버 클라이언트를 인스턴스화합니다.
-
#검사 ⇒ string
클라이언트의 검사를 string 로 가져옵니다.
-
#list_databases(필터하다 = {}, name_only = false, opts = {}) ⇒ Array<Hash>
각 데이터베이스에 대한 정보를 가져옵니다.
-
#list_mongo_databases(필터하다 = {}, opts = {}) ⇒ Array<Mongo::Database>
Mongo::Database 객체의 목록을 반환합니다.
-
#max_read_retries ⇒ 정수
비공개
레거시 읽기 재시도를 사용할 때 클라이언트 가 읽기 작업을 재시도할 수 있는 최대 횟수를 가져옵니다.
-
#max_write_retries ⇒ 정수
비공개
레거시 쓰기 재시도를 사용할 때 클라이언트가 쓰기 작업을 재시도할 수 있는 최대 횟수를 가져옵니다.
-
#read_concern ⇒ 해시
이 클라이언트 에 대한 읽기 고려 (read concern) 를 가져옵니다.
-
#read_preference ⇒ BSON::Document
클라이언트 에 전달된 옵션에서 읽기 설정 (read preference) 을 가져옵니다.
-
#read_retry_interval ⇒ Float
비공개
레거시 읽기 재시도를 사용할 때 읽기를 재시도하는 간격(초)을 가져옵니다.
-
#reconnect ⇒ true
클라이언트 를 다시 연결합니다.
-
#server_selector ⇒ Mongo::ServerSelector
서버 선택기를 가져옵니다.
-
#start_session(options = {}) ⇒ Session
세션을 시작합니다.
-
#요약 ⇒ string
클라이언트 상태에 대한 요약을 가져옵니다.
-
#update_options(new_options) ⇒ 해시
비공개
new_options에서 이 클라이언트의 옵션을 업데이트하여 모든 옵션의 유효성을 검사합니다.
-
#use(name) ⇒ Mongo::Client
제공된 이름의 데이터베이스와 이 클라이언트에 구성된 다른 옵션을 사용하여 데이터베이스를 사용하도록 구성된 새 클라이언트를 만듭니다.
-
#watch(pipeline = [], options = {}) ⇒ ChangeStream
MongoDB 서버 버전 3.6 부터 애그리게이션 프레임워크에서 '$changeStream' 파이프라인 단계가 지원됩니다.
-
#with(new_options = nil) ⇒ Mongo::Client
이 클라이언트의 기존 옵션 위에 전달된 옵션을 병합하여 새 클라이언트를 만듭니다.
-
#with_session(options = {}, &block) ⇒ 객체
비공개
가능한 경우 작업에 사용할 세션을 생성하고 제공된 차단에 양보합니다.
-
#write_concern ⇒ Mongo::WriteConcern
이 클라이언트에 대한 쓰기 고려를 가져옵니다.
Loggable에 포함된 메서드
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
생성자 세부 정보
#initialize(addresses_or_uri, options = 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-v2.19/lib/mongo/client.rb', 줄 489 def 초기화(address_or_uri, = nil) = ? .dup : {} srv_uri = nil 만약 address_or_uri.is_a?(::문자열) uri = URI.get(address_or_uri, ) 만약 uri.is_a?(URI::SRVProtocol) # URI가 SRV URI인 경우 시작할 수 있도록 이 내용을 기록해 둡니다. 토폴로지가 샤드 클러스터인 경우 # SRV 폴링. srv_uri = uri end 주소 = uri.서버 = uri..dup # 특수 처리 : 쓰기 (write) 및 :write_concern: 허용 클라이언트 Ruby # options를 사용하여 Ruby 옵션이 다음을 사용하는 경우에도 URI 옵션을 재정의할 수 있습니다. # deprecated :write 키 및 URI 옵션은 현재 # :write_concern 키 만약 [:write] .삭제(:write_concern) end = .merge() @srv_records = uri.srv_records other 주소 = address_or_uri 주소.각 do |addr| 만약 addr =~ /\Amongodb(\+srv)?:\/\//i 올리다 ArgumentError, "호스트 '#{addr}'에는 프로토콜 이 포함되지 않아야 합니다. 배열 을 사용하지 않으려는 의도 MEAN ?" end end @srv_records = nil end = self.클래스.() # 서버 API 버전은 string 로 지정됩니다. # 하지만 항상 숫자 1 을(를) string 로 제공하는 것은 매우 성가신 일입니다. # 따라서 여기서 string 유형으로 캐스트합니다. 만약 server_api = [:server_api] 만약 server_api.is_a?(해시) server_api = 옵션::편집됨.신규(server_api) 만약 (버전 = server_api[:version]).is_a?(Integer) [:server_api] = server_api.merge(버전: 버전.to_s) end end end # sdam_proc은 클라이언트 가 실행되는 동안에만 사용되므로 특수 처리됩니다. # 구성 sdam_proc = .삭제(:sdam_proc) # gssapi service_name의 경우 기본 옵션은 해시 값으로 제공됩니다. # (최상위 수준에서 한 수준 아래). = () .각 do |k, v| default_v = [k] 만약 해시 === default_v v = default_v.merge(v) end [k] = v end = .키.각 do |k| 만약 [k].nil? .삭제(k) end end @options = () =begin WriteConcern 객체 지원 if @options[:write_concern].is_a?(WriteConcern::Base) # 인스턴스를 캐시하여 불필요하게 재구성하지 않도록 합니다. @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =end @options.동결 (주소, is_srv: uri.is_a?(URI::SRVProtocol)) = @options.dup .삭제(:server_api) @database = Database.신규(self, @options[:database], ) # 이벤트 구독이 완료될 수 있도록 일시적으로 모니터링 을 설정하다 합니다. # 클러스터 없이 설정 @monitoring = 모니터링.신규(@options) 만약 sdam_proc sdam_proc.전화하기.(self) end @connect_lock = 뮤텍스.신규 @connect_lock.동기화 do @cluster = 클러스터.신규(주소, @monitoring, .merge(srv_uri: srv_uri)) end 시작 # 모니터링 설정되지 않음, 지금부터 클러스터에서 제거됩니다. remove_instance_variable('@monitoring') 만약 @options[:auto_encryption_options] @connect_lock.동기화 do build_encrypter end end 구출 시작 @cluster.닫기 구출 => e log_warn("클라이언트 생성자의 예외 처리기에서 클러스터를 닫는 중 오류가 발생했습니다: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end 올리다 end 만약 block_given? 시작 yield(self) 보장 닫기 end end end |
인스턴스 속성 세부 정보
#클러스터 ⇒ Mongo::Cluster (읽기 전용)
반환값 클러스터 클라이언트 에 대한 서버의 클러스터 입니다.
137 138 139 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 137 def cluster @cluster end |
#database ⇒ Mongo::Database (읽기 전용)
반환 데이터베이스 클라이언트가 작동 중인 데이터베이스입니다.
140 141 142 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 140 def database @database end |
#Encrypter ⇒ Mongo::Crypt::AutoEncrypter (읽기 전용)
자동 암호화 동작을 캡슐화하는 객체를 반환합니다.
147 148 149 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 147 def 암호화기 @encrypter end |
#options ⇒ 해시 (읽기 전용)
반환값 options 구성 옵션입니다.
143 144 145 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 143 def @options end |
클래스 메서드 세부 정보
.canonicalize_ruby_options(options) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 옵션에 인증 메커니즘 속성이 소문자로 지정된 경우 해당 옵션을 Options::Redacted의 인스턴스로 변환합니다.
1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 1161 def () 옵션::편집됨.신규(해시[.map do |k, v| 만약 k == :auth_mech_properties || k == 'auth_mech_properties' 만약 v v = 해시[v.map { |pk, pv| [pk.downcase, pv] }] end end [k, v] end]) end |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true, false ~ 라고도 함: eql?
이 클라이언트가 다른 객체와 동일한지 확인합니다.
176 177 178 179 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 176 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(고객) cluster == 기타.cluster && == 기타. end |
#[](collection_name, options = {}) ⇒ Mongo::Collection
제공된 컬렉션 이름에 대한 컬렉션 객체 를 가져옵니다.
193 194 195 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 193 def [](collection_name, = {}) database[collection_name, ] end |
#닫기 ⇒ true
모든 연결을 닫습니다.
872 873 874 875 876 877 878 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 872 def 닫기 @connect_lock.동기화 do @closed = true do_close end true end |
#close_encrypter ⇒ true
암호화기를 닫고 자동 암호화 리소스를 정리합니다.
883 884 885 886 887 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 883 def close_encrypter @encrypter.닫기 만약 @encrypter true end |
#닫았나요? ⇒ 부울
863 864 865 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 863 def 닫힘? !!@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-v2.19/lib/mongo/client.rb', 줄 618 def # 새 클라이언트 가 서로 다른 CRUD_OPTIONS를 가진 경우 클러스터를 주식 합니다. #이(가) 요청되었습니다. 따라서 클러스터는 다음 중 하나를 얻지 않아야 합니다. 인스턴스화 시 옵션 # .거부 do |키, value| CRUD_OPTIONS.포함?(키.to_sym) end.merge( # 하지만 인증을 위해 데이터베이스를 다시 넣어야 합니다... database: [:database], # 레거시 호환성을 위해 이러한 옵션을 추가하되, # 클라이언트와 클러스터의 값이 일치하지 않아도 됩니다. # 애플리케이션은 클러스터가 아닌 클라이언트에서 이러한 값을 읽어야 합니다. max_read_retries: [:max_read_retries], read_retry_interval: [:read_retry_interval], ).탭 do || # 클라이언트에 클러스터가 이미 있는 경우 srv_uri를 새 클러스터에 전달합니다. # 클러스터를 추가하여 SRV 모니터링을 유지 관리합니다. 클라이언트가 신규 고객인 경우, # 생성자가 srv_uri를 수동으로 설정합니다. 만약 cluster .update(srv_uri: cluster.[:srv_uri]) end end end |
#database_names(filter = {}, opts = {}) ⇒ Array<String>
모든 데이터베이스의 이름을 가져옵니다.
936 937 938 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 936 def database_names(필터 = {}, opts = {}) list_databases(필터, true, opts).수집{ |정보| 정보['name'] } end |
#encryption_fields_map ⇒ 해시 | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트를 생성할 때 암호화된 필드 맵 해시를 제공한 경우 반환합니다.
1177 1178 1179 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 1177 def encryption_fields_map @encrypted_fields_map ||= @options.가져오기(:auto_encryption_options, {})[:encrypted_fields_map] end |
#get_session(options = {}) ⇒ Session | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
가능한 경우 작업에 사용할 세션을 반환합니다.
:session 옵션이 설정되어 있으면 해당 세션의 유효성을 검사하고 반환합니다. 그렇지 않고 배포에서 세션을 지원하는 경우 새 세션을 만들어 반환합니다. 새 세션이 생성될 때 :implicit 옵션이 제공되면 세션이 암시적(수명 주기는 드라이버에서 관리)이 되고, 그렇지 않으면 세션은 명시적(애플리케이션에서 수명 주기 관리)이 됩니다. 배포에서 세션을 지원하지 않는 경우 nil을 반환합니다.
1117 1118 1119 1120 1121 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 1117 def get_session( = {}) get_session!() 구출 오류::SessionsNotSupported nil end |
#해시 ⇒ 정수
클라이언트 의 해시 값을 가져옵니다.
205 206 207 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 205 def 해시 [cluster, ].해시 end |
#검사 ⇒ string
클라이언트의 검사를 string 로 가져옵니다.
681 682 683 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 681 def 검사 "#<Mongo::Client:0x#{object_id} 클러스터=#{클러스터.요약}>" end |
#list_databases(filter = {}, name_only = false, opts = {}) ⇒ Array<Hash>
각 데이터베이스에 대한 정보를 가져옵니다.
962 963 964 965 966 967 968 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 962 def list_databases(필터 = {}, name_only = 거짓, opts = {}) cmd = { listDatabases: 1 } cmd[:nameOnly] = !!name_only cmd[:filter] = 필터 하지 않는 한 필터.비어 있나요? cmd[:authorizedDatabases] = true 만약 opts[:authorized_databases] 메서드를(Database::ADMIN).database.read_command(cmd, opts).first[Database::데이터베이스] end |
#list_mongo_databases(filter = {}, opts = {}) ⇒ Array<Mongo::Database>
Mongo::Database 객체의 목록을 반환합니다.
985 986 987 988 989 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 985 def list_mongo_databases(필터 = {}, opts = {}) database_names(필터, opts).수집 do |이름| Database.신규(self, 이름, ) end end |
#max_read_retries ⇒ 정수
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
레거시 읽기 재시도를 사용할 때 클라이언트 가 읽기 작업을 재시도할 수 있는 최대 횟수를 가져옵니다.
649 650 651 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 649 def max_read_retries [:max_read_retries] || 클러스터::MAX_READ_RETRIES end |
#max_write_retries ⇒ 정수
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
레거시 쓰기 재시도를 사용할 때 클라이언트가 쓰기 작업을 재시도할 수 있는 최대 횟수를 가져옵니다.
669 670 671 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 669 def max_write_retries [:max_write_retries] || 클러스터::MAX_WRITE_RETRIES end |
#read_concern ⇒ 해시
이 클라이언트 에 대한 읽기 고려 (read concern) 를 가져옵니다.
846 847 848 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 846 def read_concern [:read_concern] end |
#read_preference ⇒ BSON::Document
클라이언트 에 전달된 옵션에서 읽기 설정 (read preference) 을 가져옵니다.
729 730 731 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 729 def read_preference @read_preference ||= [:read] end |
#read_retry_interval ⇒ Float
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
레거시 읽기 재시도를 사용할 때 읽기를 재시도하는 간격(초)을 가져옵니다.
659 660 661 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 659 def read_retry_interval [:read_retry_interval] || 클러스터::READ_RETRY_INTERVAL end |
#reconnect ⇒ true
클라이언트 를 다시 연결합니다.
897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 897 def 다시 연결 주소 = cluster.주소.map(&:to_s) @connect_lock.동기화 do do_close 구출 nil @cluster = 클러스터.신규(주소, 모니터링, ) 만약 @options[:auto_encryption_options] build_encrypter end @closed = 거짓 end true end |
#server_selector ⇒ Mongo::ServerSelector
서버 선택기를 가져옵니다. 클라이언트 옵션에 정의된 읽기 설정을 사용하거나 기본 서버 선택기를 사용합니다.
707 708 709 710 711 712 713 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 707 def server_selector @server_selector ||= 만약 read_preference ServerSelector.get(read_preference) other ServerSelector.기본 end end |
#start_session(options = {}) ⇒ Session
세션은 한 번에 여러 스레드에서 사용할 수 없습니다. 세션 객체는 스레드로부터 안전하지 않습니다.
세션을 시작합니다.
배포서버 서버가 세션을 지원 하지 않는 경우, Mongo::Error::InvalidSession을 발생시킵니다. 이 예외는 운전자 가 데이터 보유 서버 에 연결되어 있지 않은 경우에도 발생할 수 있습니다( 예시: 페일오버).
1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 1010 def start_session( = {}) Session = get_session!(.merge(암시적: 거짓)) 만약 block_given? 시작 yield Session 보장 Session.end_session end other Session end end |
#요약 ⇒ string
반환된 요약 string 의 정확한 형식과 레이아웃은 드라이버의 공개 API 에 포함되지 않으며 언제든지 변경될 수 있습니다.
클라이언트 상태에 대한 요약을 가져옵니다.
693 694 695 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 693 def 요약 "#<Client cluster=#{cluster.요약}>" 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-v2.19/lib/mongo/client.rb', 줄 796 def () = @options = self.클래스.( || {}) ().탭 do |opts| # 옵션이 동결되었습니다. = @options.dup 만약 [:write] && opts[:write_concern] .삭제(:write) end 만약 [:write_concern] && opts[:write] .삭제(:write_concern) end .update(opts) @options = .동결 = @options[:auto_encryption_options] != [:auto_encryption_options] # 새로운 auto_encryption_options가 있는 경우 새 암호화기를 만듭니다. # 그렇지 않으면 새 클라이언트가 암호화기를 공유하도록 허용합니다. # 원래 클라이언트. # # auto_encryption_options가 nil인 경우 @encrypter를 nil로 설정하되, # 원래 클라이언트 에서 여전히 사용할 수 있으므로 암호화기를 닫습니다. 만약 @options[:auto_encryption_options] && @connect_lock.동기화 do build_encrypter end elsif @options[:auto_encryption_options].nil? @connect_lock.동기화 do @encrypter = nil end end end end |
#use(name) ⇒ Mongo::Client
새 클라이언트는 원래 클라이언트와 클러스터를 공유하며, 결과적으로 모니터링 인스턴스 및 모니터링 이벤트 구독자도 공유합니다.
제공된 이름의 데이터베이스와 이 클라이언트에 구성된 다른 옵션을 사용하여 데이터베이스를 사용하도록 구성된 새 클라이언트를 만듭니다.
748 749 750 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 748 def 메서드를(이름) 와(database: 이름) end |
#watch(파이프라인 = [], options = {}) ⇒ ChangeStream
변경 스트림 은 '대다수' 읽기 고려 (read concern) 만 허용합니다.
재개 가능성을 지원할 목적으로 $changeStream 단계로 원시 애그리게이션을 실행하는 것보다 이 헬퍼 메서드를 사용하는 것이 좋습니다.
MongoDB 서버 버전 3.6 부터 애그리게이션 프레임워크에서 '$changeStream' 파이프라인 단계가 지원됩니다. 버전 4.0 부터 이 단계에서는 클라이언트의 클러스터에서 발생하는 모든 변경 사항에 대해 알림을 보내도록 요청할 수 있습니다.
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 1087 def 시계(파이프라인 = [], = {}) 반환 메서드를(Database::ADMIN).시계(파이프라인, ) 하지 않는 한 database.이름 == Database::ADMIN = .dup [:await_data] = true 만약 [:max_await_time_ms] mongo::컬렉션::보기::Change Stream.신규( mongo::컬렉션::보기.신규(self["#{Database::COMMAND}.aggregate"], {}, ), 파이프라인, mongo::컬렉션::보기::Change Stream::클러스터, ) end |
#with(new_options = nil) ⇒ Mongo::Client
지정된 옵션에 따라 반환된 클라이언트는 원래 클라이언트와 클러스터를 공유하거나 새 클러스터로 생성될 수 있습니다. 새 클러스터가 생성되면 새 클라이언트의 모니터링 이벤트 구독자는 기본 이벤트 구독자 세트로 설정되고 원래 클라이언트의 구독자는 복사되지 않습니다.
이 클라이언트의 기존 옵션 위에 전달된 옵션을 병합하여 새 클라이언트를 만듭니다. 원래 클라이언트를 변경하지 않고 특정 옵션을 변경할 때 일회성인 경우에 유용합니다.
770 771 772 773 774 775 776 777 778 779 780 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 770 def 와( = nil) 복제.탭 do |고객| opts = 고객.( || 옵션::편집됨.신규) Database.create(고객) # 클러스터에 영향을 미치는 몇 가지 옵션이 있는 경우 동일한 클러스터를 사용할 수 없습니다. # 변경되었습니다. 만약 (opts) 클러스터.create(고객, 모니터링: opts[:monitoring]) end end end |
#with_session(options = {}, &block) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
가능한 경우 작업에 사용할 세션을 생성하고 제공된 차단에 양보합니다.
:session 옵션이 설정되어 있으면 해당 세션의 유효성을 검사하고 사용합니다. 그렇지 않고 배포에서 세션을 지원하는 경우 새 세션을 만들어 사용합니다. 새 세션이 생성될 때 :implicit 옵션이 제공되면 세션이 암시적(수명 주기는 드라이버에서 관리)이 되고, 그렇지 않으면 세션은 명시적(애플리케이션에서 수명 주기 관리)이 됩니다. 배포에서 세션을 지원하지 않는 경우 차단에 nil을 반환합니다.
차단이 완료되고 세션이 생성되고 암시적이거나 암시적 세션이 전달된 경우 세션이 종료되고 사용 가능한 세션 풀로 반환됩니다.
1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 1143 def with_session( = {}, &차단) # TODO: RUBY-3174 에 다시 추가합니다. # assert_not_closed Session = get_session() yield Session 보장 만약 Session && Session.암시적? Session.end_session end end |
#write_concern ⇒ Mongo::WriteConcern
이 클라이언트에 대한 쓰기 고려를 가져옵니다. 옵션이 제공되지 않은 경우 기본 단일 서버 확인이 사용됩니다.
859 860 861 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/client.rb', 줄 859 def write_concern @write_concern ||= writeConcern.get([:write_concern] || [:write]) end |