모듈: Mongo::Protocol::Serializers::Document Private

다음에 정의됨:
lib/ Mongo/ 프로토콜/serializers.rb

개요

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

BSON 문서에 대한 MongoDB 유선 프로토콜 직렬화 전략입니다.

단일 문서를 직렬화 및 역직렬화합니다.

클래스 메서드 요약 접기

클래스 메서드 세부 정보

.역직렬화(버퍼, 옵션 = {}) ⇒ 해시

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

IO 스트림 에서 문서 를 역직렬화합니다.

매개변수:

  • buffer (string)

    BSON 인코딩된 문서 를 포함하는 버퍼입니다.

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

옵션 해시(options):

  • :deserialize_as_bson (부울)

    가능한 BSON types Ruby 경우 네이티브 유형 대신 을 사용하여 섹션 역직렬화를 수행할지 여부입니다.

반환합니다:

  • (해시)

    디코딩된 BSON 문서 입니다.



384
385
386
387
# 파일 'lib/ Mongo/ 프로토콜/serializers.rb', 줄 384

def self.역직렬화(buffer, 옵션 = {})
  모드 = 옵션[:deserialize_as_bson] ? :bson : nil
  BSON::문서.from_bson(buffer, **{ 모드: 모드 })
end

.직렬화(버퍼, 값, max_bson_size = nil, validation_keys = nil) ⇒ string

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

문서를 버퍼에 직렬화합니다.

매개변수:

  • buffer (string)

    BSON 인코딩 문서 를 수신하는 버퍼입니다.

  • value (해시)

    BSON으로 직렬화할 문서입니다.

반환합니다:

  • (string)

    직렬화된 값이 있는 버퍼입니다.



364
365
366
367
368
369
370
371
372
# 파일 'lib/ Mongo/ 프로토콜/serializers.rb', 줄 364

def self.직렬화(buffer, value, max_bson_size = nil, validation_keys = nil)
  start_size = buffer.분량
  value.to_bson(buffer)
  serialized_size = buffer.분량 - start_size
  만약 max_bson_size && serialized_size > max_bson_size
    올리다 오류::MaxBSONSize,
      "문서 가 직렬화 후 허용된 최대 BSON 객체 크기를 초과했습니다. 직렬화된 크기: #{직렬화된_크기} 바이트, 최대 허용 크기: #{최대_bson_크기} 바이트"
  end
end

.size_limited?true

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

직렬화 후 이 유형에 크기 제한이 있을 수 있는지 여부입니다.

반환합니다:

  • (true)

    직렬화 시 문서의 크기가 제한될 수 있습니다.

이후:

  • 2.0.0



394
395
396
# 파일 'lib/ Mongo/ 프로토콜/serializers.rb', 줄 394

def self.size_limited?
  true
end