클래스: Mongo::Error::Parser Private

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
S담 오류 감지
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/error/parser.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

MongoDB 명령 응답에서 오류가 발생할 수 있는 다양한 형식을 구문 분석하기 위한 클래스입니다.

서버는 여러 가지 방법으로 오류를 보고할 수 있습니다.

  • ok:0 응답이 실패를 나타냅니다. 최신 서버에서는 코드, codeName 및 ermsg 필드를 설정해야 합니다. 이전 서버에서는 일부 설정이 되지 않을 수 있습니다.

  • ok: 쓰기 고려 오류가 있는 1 응답(writeConcernError 최상위 필드). 이는 응답하는 노드가 요청을 성공적으로 실행했지만 쓰기 고려를 충족할 만큼 요청을 성공적으로 실행한 노드가 충분하지 않았음을 나타냅니다.

  • ok:1 응답에 writeErrors 최상위 필드 가 포함됩니다. 이는 대량 쓰기 (write) 뿐만 아니라 대량 쓰기 (write) 가 아닌 에서도 얻을 수 있습니다. 대량 쓰기 (write) 가 아닌 경우 writeErrors 목록에 정확히 하나의 오류가 있어야 합니다. 오류가 여러 개인 경우는 BulkWrite::Result에서 처리합니다.

  • ok: writeConcernErrors 최상위 필드가 포함된 1 응답입니다. 이는 대량 쓰기에서만 얻을 수 있으며 이 클래스가 아닌 BulkWrite::Result에 의해 처리됩니다.

writeErrors에는 codeName 필드가 없으며 코드와 메시지만 제공합니다. writeConcernErrors는 마찬가지로 코드 이름을 제공하지 않을 수 있습니다.

이후:

  • 2.0.0

상수 요약

SdamErrorDetection에 포함된 상수

SdamErrorDetection::NODE_RECOVERING_CODES, SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, SdamErrorDetection::NOT_MASTER_CODES

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

SdamErrorDetection에 포함된 메서드

#node_recovering?, #node_shutting_down?, #not_master?

생성자 세부 정보

#initialize(문서, replies = nil, options = nil) ⇒ 구문 분석기

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환 문서 로 새 구문 분석기를 만듭니다.

레거시 모드에서는 상태( ok: 1)가 문서의 일부가 아니며 문서 자체를 사용하여 성공한 응답과 실패한 응답을 구별할 수 있는 방법이 없기 때문에 문서의 코드 및 codeName 필드가 검사되지 않으며 성공적인 응답은 응답은 사용자가 삽입한 문서의 내용으로 합법적으로 { code: 123, codeName: 'foo' }를 가질 수 있습니다. 레거시 서버 버전은 코드나 codeName을(를) 작성하지 않으므로 이를 읽지 않아도 정보가 손실되지 않습니다.

예시:

새 구문 분석기를 만듭니다.

Parser.new({ 'errmsg' => 'failed' })

매개변수:

  • 문서 (BSON::Document)

    반환된 문서입니다.

  • 답장 (Array<Protocol::Message>) (기본값: nil)

    메시지가 응답합니다.

  • 옵션 (해시) (기본값: nil)

    옵션.

옵션 해시(options):

  • :legacy (true | false)

    문서 및 회신의 출처가 레거시( 3.2 이전)인지 여부 응답

이후:

  • 2.0.0



122
123
124
125
126
127
128
129
130
131
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 122

def 초기화(문서, 답장 = nil, 옵션 = nil)
  @document = 문서 || {}
  @replies = 답장
  @options = 만약 옵션
    옵션.dup
  other
    {}
  end.동결
  구문 분석!
end

인스턴스 속성 세부 정보

#코드정수 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환값 문서 에서 구문 분석된 오류 코드를 반환합니다.

반환합니다:

  • (정수)

    문서에서 구문 분석된 오류 코드입니다.

이후:

  • 2.6.0



88
89
90
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 88

def 코드
  @code
end

#code_namestring (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환값 문서에서 구문 분석된 오류 코드 이름을 반환합니다.

반환합니다:

  • (string)

    문서에서 구문 분석된 오류 코드 이름입니다.

이후:

  • 2.6.0



92
93
94
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 92

def code_name
  @code_name
end

#문서BSON::Document (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환된 문서 를 반환합니다.

반환합니다:

  • (BSON::Document)

    반환된 문서입니다.

이후:

  • 2.0.0



73
74
75
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 73

def 문서
  @document
end

#레이블Array<String> (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

오류와 관련된 레이블 집합을 반환합니다.

반환합니다:

  • (Array<String>)

    오류와 관련된 레이블 집합입니다.

이후:

  • 2.7.0



96
97
98
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 96

def labels
  @labels
end

#메시지string (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

발생한 예외에 사용할 전체 오류 메시지를 반환합니다.

반환합니다:

  • (string)

    발생한 예외에 사용할 전체 오류 메시지입니다.

이후:

  • 2.0.0



77
78
79
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 77

def 메시지
  @message
end

#repliesArray<Protocol::Message> (readonly)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

메시지 회신을 반환합니다.

반환합니다:

이후:

  • 2.0.0



84
85
86
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 84

def 답장
  @replies
end

#server_messagestring (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

응답에서 구문 분석된 서버 반환 오류 메시지를 반환합니다.

반환합니다:

  • (string)

    응답에서 구문 분석된 서버 반환 오류 메시지입니다.

이후:

  • 2.0.0



81
82
83
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 81

def server_message
  @server_message
end

#wtimeout객체 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.0.0



99
100
101
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 99

def w 시간 초과
  @wtimeout
end

클래스 메서드 세부 정보

.build_message(code: nil, code_name: nil, message: nil) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.0.0



177
178
179
180
181
182
183
184
185
186
187
188
189
190
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 177

def build_message(코드: nil, code_name: nil, 메시지: nil)
  만약 code_name && 코드
    "[#{code}:#{code_name}]: #{message}"
  elsif code_name
    # 코드 이름이 있는 경우에는 절대 이런 일이 발생하지 않아야 합니다.
    # 제공된 코드도 있어야 합니다.
    # 완전성을 위해 이 사례를 처리합니다.
    "[#{code_name}]: #{message}"
  elsif 코드
    "[#{코드}]: #{메시지}"
  other
    메시지
  end
end

인스턴스 메서드 세부 정보

#write_concern_error?true | false

반환값 문서에 쓰기 고려 오류가 포함되어 있는지 여부를 반환합니다. 실패에는 최상위 오류와 쓰기 고려 오류 또는 둘 중 하나가 있을 수 있습니다.

반환합니다:

  • (true | false)

    문서에 쓰기 고려 오류가 포함되어 있는지 여부입니다. 실패에는 최상위 오류와 쓰기 고려 오류 또는 둘 중 하나가 있을 수 있습니다.

이후:

  • 2.10.0



139
140
141
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 139

def write_concern_error?
  !!write_concern_error_document
end

#write_concern_error_code정수 | nil

쓰기 고려 오류가 있고 코드가 있는 경우 쓰기 고려 오류에 대한 오류 코드를 반환합니다.

반환합니다:

  • (정수 | nil)

    쓰기 고려 오류가 존재하고 코드가 있는 경우 쓰기 고려 오류에 대한 오류 코드입니다.

이후:

  • 2.10.0



157
158
159
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 157

def write_concern_error_code
  write_concern_error_document && write_concern_error_document['코드']
end

#write_concern_error_code_namestring | nil

쓰기 고려 오류가 있고 코드명이 있는 경우 쓰기 고려 오류에 대한 코드 이름을 반환합니다.

반환합니다:

  • (string | nil)

    쓰기 고려 (write concern) 쓰기 고려 (write concern) 의 코드 이름입니다.

이후:

  • 2.10.0



166
167
168
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 166

def write_concern_error_code_name
  write_concern_error_document && write_concern_error_document['codeName']
end

#write_concern_error_document해시 | nil

서버에서 보고한 쓰기 고려 오류 문서(있는 경우)를 반환합니다.

반환합니다:

  • (Hash | nil)

    서버에 보고된 쓰기 고려 오류입니다.

이후:

  • 2.0.0



148
149
150
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 148

def write_concern_error_document
  문서['writeConcernError']
end

#write_concern_error_labelsArray<String> | nil

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

쓰기 고려 오류(쓰기 고려 오류가 있는 경우)입니다.

반환합니다:

  • (Array<String> | nil)

    이와 관련된 오류 레이블

이후:

  • 2.0.0



172
173
174
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/parser.rb', 줄 172

def write_concern_error_labels
  write_concern_error_document && write_concern_error_document['errorLabels']
end