클래스: Mongo::URI

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
주소::Validator, Loggable
다음에 정의됨:
lib/ Mongo/uri.rb,
lib/ Mongo/uri/srv_protocol.rb,
lib/ Mongo/uri/options_mapper.rb

개요

URI 클래스는 사용자가 MongoDB 연결 string 형식 사양에 정의된 대로 uri를 구문 분석할 수 있는 방법을 제공합니다.

https://www.mongodb.com/ko-kr/docs/manual/reference/connection-string/

예시:

uri string 을 사용하여 클라이언트 연결을 설정합니다.

uri = Mongo::URI.new('mongodb://localhost:27017')
client = Mongo::Client.new(uri.servers, uri.options)
client.(uri.credentials)
client[uri.database]

이후:

  • 2.0.0

네임스페이스 아래에 정의됨

클래스: OptionsMapper, SRVProtocol

상수 요약 접기

SCHEME =
더 이상 사용되지 않습니다.

3.0 에서 제거될 예정입니다.

MongoDB 연결 string 체계입니다.

이후:

  • 2.0.0

'mongodb://'
MONGODB_SCHEME =

MongoDB 연결 string 체계 루트입니다.

이후:

  • 2.5.0

'mongodb'
MONGODB_SRV_SCHEME =

MongoDB srv 프로토콜 연결 string 체계 루트입니다.

이후:

  • 2.5.0

'mongodb+srv'
INVALID_SCHEME =
더 이상 사용되지 않습니다.

잘못된 체계에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

"체계가 잘못되었습니다. 체계는 '#{MONGODB_SCHEME}' 또는 '#{MONGODB_SRV_SCHEME}'이어야 합니다.
FORMAT =

MongoDB URI 형식 사양입니다.

이후:

  • 2.0.0

'MongoDB://[username:password@]host1[:port1][,host2[:port2]' +
',...[,hostN[:portN]]][/[데이터베이스][?options]]'
HELP =

MongoDB URI(연결 string) 문서 URL

이후:

  • 2.0.0

'https://www.mongodb.com/ko-kr/docs/manual/reference/connection-string/'
UNSAFE =

urlen코딩해야 하는 안전하지 않은 문자입니다.

이후:

  • 2.1.0

%r{[:/@]}
PERCENT_CHAR =

사용자 자격 증명에 인코딩해야 하는 백분율 기호입니다.

이후:

  • 2.5.1

/%/
UNIX_SOCKET =

유닉스 소켓 접미사.

이후:

  • 2.1.0

/.sock/
HOST_DELIM =

호스트를 구분하는 문자입니다.

이후:

  • 2.1.0

','
HOST_PORT_DELIM =

호스트와 포트를 구분하는 문자입니다.

이후:

  • 2.1.0

':'
DATABASE_DELIM =

데이터베이스를 구분하는 문자입니다.

이후:

  • 2.1.0

'/'
URI_OPTS_DELIM =

문자 구분 옵션입니다.

이후:

  • 2.1.0

'?'
INDIV_URI_OPTS_DELIM =
더 이상 사용되지 않습니다.

여러 옵션을 구분하는 문자입니다.

이후:

  • 2.1.0

'&'
URI_OPTS_밸류_DELIM =

옵션과 해당 값을 구분하는 문자입니다.

이후:

  • 2.1.0

'='
AUTH_USER_PWD_DELIM =

사용자 이름과 비밀번호를 구분하는 문자입니다.

이후:

  • 2.1.0

':'
AUTH_DELIM =

인증 자격 증명을 구분하는 문자입니다.

이후:

  • 2.1.0

'@'
SCHEME_DELIM =

체계 구분자.

이후:

  • 2.5.0

'://'
INVALID_OPTS_밸류_DELIM =

잘못된 옵션 형식에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

'옵션과 해당 값은 ' +
" by '# {URI_OPTS_밸류_DELIM} '
UNESCAPED_USER_PWD =

URL렌코딩되지 않은 사용자 이름 또는 비밀번호에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

'사용자 이름과 비밀번호는 URL렌코딩해야 합니다.'
UNESCAPED_UNIX_SOCKET =

URL렌코딩되지 않은 유닉스 소켓 경로에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

'UNIX 도메인 소켓은 URL렌코딩되어야 합니다.'
UNESCAPED_DATABASE =

URL렌코딩되지 않은 인증 데이터베이스 이름에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

'인증 데이터베이스 URL렌코딩되어야 합니다.'
INVALID_OPTS_DELIM =

데이터베이스 구분 기호 없이 옵션을 제공하는 경우의 오류 세부 정보입니다.

이후:

  • 2.1.0

"옵션이 지정된 경우데이터베이스 구분 기호 '#{DATABASE_DELIM}'이(가) 있어야 합니다."
INVALID_HOST =

누락된 호스트에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

'호스팅하다 누락되었습니다. 하나 이상을 제공해야 합니다.'
INVALID_PORT =

잘못된 포트에 대한 오류 세부 정보입니다.

이후:

  • 2.1.0

'포트가 잘못되었습니다. 포트는 0 보다 크고 65536보다 작은 정수여야 합니다.'
READ_mode_MAP =

URI 읽기 기본 설정 모드를 Ruby 드라이버 읽기 기본 설정 모드로 매핑

이후:

  • 2.0.0

{
  '프라이머리' => :primary,
  'primarypreferred' => :primary_preferred,
  'secondary' => :secondary,
  'secondarypreferred' => :secondary_preferred,
  '가장 가까운' => :nearest
}.동결
AUTH_MECH_MAP =

Ruby 드라이버 메커니즘에 대한 URI 인증 메커니즘 매핑

이후:

  • 2.0.0

{
  'GSSAPI' => :gssapi,
  'MONGODB-AWS' => :aws,
  # MONGODB-CR은 더 이상 사용되지 않으며 드라이버 버전 3.0에서 제거될 예정입니다.
  'MONGODB-CR' => :mongodb_cr,
  'MONGODB-X509' => :mongodb_x509,
  'PLAIN' => :플레인,
  'SCRAM-SHA-1' => :scRAM,
  'SCRAM-SHA-256' => :scram256,
}.동결
SERVER_MONITORING_MODES =

serverMonitoringMode URI 옵션의 유효한 값입니다.

이후:

  • 2.0.0

%w[스트림 poll 자동].동결
REPEAtable_OPTIONS =

URI에 두 번 이상 표시되도록 허용된 옵션입니다.

'tls' 및 'sl'의 모든 인스턴스가 동일한 값을 가져야 한다는 URI 옵션 사양 요구 사항을 따르려면 해당 옵션에 대해 전달된 모든 값을 추적 해야 합니다. 충돌하지 않는다고 가정하면 URI를 구문 분석한 직후 단일 값으로 압축됩니다.

이후:

  • 2.1.0

%i[tag_sets ssl]

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

주소::유효성 검사기에 포함된 메서드

#validate_address_str!

Loggable에 포함된 메서드

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

생성자 세부 정보

#initialize(string, options = {}) ⇒ URI

제공된 string 에서 새 URI를 만듭니다.

예시:

새 URI를 만듭니다.

URI.new('mongodb://localhost:27017')

매개변수:

  • 문자열 (string)

    구문 분석할 URI입니다.

  • 옵션 (해시) (기본값: {})

    옵션.

옵션 해시(options):

  • :logger (로거)

    사용할 사용자 지정 로거입니다.

다음을 발생시킵니다.

이후:

  • 2.0.0



282
283
284
285
286
287
288
289
290
291
292
293
294
295
# 파일 'lib/ Mongo/uri.rb', 282줄

def 초기화(문자열, 옵션 = {})
  올리다 오류::InvalidURI.신규(문자열, 'URI는 nil이 아닌 string 이어야 합니다.') 하지 않는 한 문자열
  올리다 오류::InvalidURI.신규(문자열, '빈 URI는 구문 분석할 수 없습니다.') 만약 문자열.비어 있나요?

  @string = 문자열
  @options = 옵션
  parsed_scheme, _, 나머지 = 문자열.파티션(SCHEME_DELIM)
  하지 않는 한 parsed_scheme == Scheme
    raise_invalid_error!(" '#{parsed_scheme} ' 스키마가 잘못되었습니다. 스키마는 '# {MONGODB_SCHEME} } '이어야 합니다 . SRV URI를 구문 분석하려면 URI#get을 사용하세요.")
  end
  raise_invalid_error!('URI에 호스트가 없습니다.') 만약 나머지.비어 있나요?
  구문 분석!(나머지)
  validate_uri_options!
end

인스턴스 속성 세부 정보

#options객체 (읽기 전용)

uri 구문 분석기 객체 옵션입니다.

이후:

  • 2.0.0



37
38
39
# 파일 'lib/ Mongo/uri.rb', 37줄

def 옵션
  @options
end

서버 # 개 ⇒ 객체 (읽기 전용)

URI에 지정된 서버입니다.

이후:

  • 2.0.0



47
48
49
# 파일 'lib/ Mongo/uri.rb', 47줄

def 서버
  @servers
end

#uri_options객체 (읽기 전용)

Mongo::Options::uri에 지정된 옵션을 삭제했습니다.

이후:

  • 2.1.0



42
43
44
# 파일 'lib/ Mongo/uri.rb', 42줄

def uri_options
  @uri_options
end

클래스 메서드 세부 정보

.get(string, opts = {}) ⇒ URI, URI::SRVProtocol

URI 객체 또는 SRVProtocol URI 객체를 가져옵니다.

예시:

uri 객체를 가져옵니다.

URI.get(string)

매개변수:

  • 문자열 (string)

    구문 분석할 URI입니다.

  • opts (해시) (기본값: {})

    옵션.

  • 옵션 (해시)

    사용자 지정 가능한 옵션 세트

반환합니다:

다음을 발생시킵니다.

이후:

  • 2.5.0



231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# 파일 'lib/ Mongo/uri.rb', 231줄

def self.get(문자열, opts = {})
  올리다 오류::InvalidURI.신규(문자열, 'URI는 nil이 아닌 string 이어야 합니다.') 하지 않는 한 문자열
  올리다 오류::InvalidURI.신규(문자열, '빈 URI는 구문 분석할 수 없습니다.') 만약 문자열.비어 있나요?

  Scheme, = 문자열.파티션(SCHEME_DELIM)
  case Scheme
  when MONGODB_SCHEME
    URI.신규(문자열, opts)
  when MONGODB_SRV_SCHEME
    SRVProtocol.신규(문자열, opts)
  other
    올리다 오류::InvalidURI.신규(문자열,
                                " '#{schema}' 체계가 잘못 되었습니다. 체계는' #{MONGODB_SCHEME} ' 또는' #{MONGODB_SRV_SCHEME} ' ")
  end
end

인스턴스 메서드 세부 정보

#client_optionsMongo::Options::Redacted

인스턴스화 시 Mongo::Client에 전달해야 하는 옵션 해시를 가져오므로 해당 점 에서 자격 증명 과 데이터베이스 병합할 필요가 없습니다. 여기에는 단일 점 만 있습니다.

예시:

클라이언트 옵션을 가져옵니다.

uri.client_options

반환합니다:

이후:

  • 2.0.0



257
258
259
260
261
262
263
# 파일 'lib/ Mongo/uri.rb', 257줄

def client_options
  opts = uri_options. do |opts|
    opts[:database] = @database 만약 @database
  end

  @user ? opts.merge(자격 증명) : opts
end

자격 증명 # ⇒ 해시

URI에 제공된 자격 증명을 가져옵니다.

예시:

자격 증명을 가져옵니다.

uri.credentials

반환합니다:

  • (해시)

    자격 증명.

    • :user [ string ] 사용자입니다.
    • :password [ string ] 제공된 비밀번호입니다.

이후:

  • 2.0.0



307
308
309
# 파일 'lib/ Mongo/uri.rb', 307줄

def 자격 증명
  { 사용자: @user, 비밀번호: @password }
end

#데이터베이스string

URI에 제공된 데이터베이스를 가져옵니다.

예시:

데이터베이스를 가져옵니다.

uri.database

반환합니다:

  • (string)

    데이터베이스.

이후:

  • 2.0.0



319
320
321
# 파일 'lib/ Mongo/uri.rb', 319줄

def database
  @database || Database::ADMIN
end

#srv_records객체

이후:

  • 2.0.0



265
266
267
# 파일 'lib/ Mongo/uri.rb', 265줄

def srv_records
  nil
end

#to_sstring

URI를 string 로 가져옵니다.

예시:

URI를 string 로 가져옵니다.

uri.to_s

반환합니다:

  • (string)

    URI string 입니다.

이후:

  • 2.0.0



329
330
331
# 파일 'lib/ Mongo/uri.rb', 329줄

def to_s
  재구성_우리
end