Módulo: Mongo::Protocol::Serializers::Document Private

Definido em:
lib/mongo/protocol/serializers.rb

Visão geral

Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.

Estratégia de serialização de protocolo de conexão do MongoDB para um documento BSON.

Serializa e deserializa um único documento.

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.desserializar(buffer, opções = {}) ➤ Hash

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Deserializa um documento do fluxo de IO

Parâmetros:

  • buffer (string)

    Buffer contendo o documento codificado BSON .

  • opções (Hash) (padrão para: {})

Hash de opções (opções):

  • :deserialize_as_bson (Booleano)

    Se deve executar a desserialização de seção usando BSON types em vez de tipos Ruby nativos, sempre que possível.

Retorna:

  • (Hash)

    O documento BSON decodificado .



368
369
370
371
# Arquivo 'lib/mongo/protocol/serializers.rb', linha 368

def auto.desserializar(buffer, opções = {})
  Modo = opções[:deserialize_as_bson] ? :bson : nada
  BSON::Documento.from_bson(buffer, modo: Modo)
end

.serializar(buffer, valor, max_bson_size = nil, _validating_keys = nil) ➤ String

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Serializa um documento no buffer

Parâmetros:

  • buffer (string)

    Buffer para receber o documento codificado BSON .

  • valor (Hash)

    Documento para serializar como BSON.

Retorna:

  • (string)

    Buffer com valor serializado.

Aumenta:



348
349
350
351
352
353
354
355
356
# Arquivo 'lib/mongo/protocol/serializers.rb', linha 348

def auto.serializar(buffer, valor, max_bson_size = nada, _validating_keys = nada)
  start_size = buffer.Tamanho
  valor.to_bson(buffer)
  serialized_size = buffer.Tamanho - start_size
  Método a menos que max_bson_size && serialized_size > max_bson_size

  aumentar Erro::MaxBSONSize,
        "O documento excede o tamanho máximo permitido do objeto BSON após a serialização. Tamanho serializado: #{serialized_size} bytes, maximum allow size: #{max_bson_size} bytes"
end

.size_limited?verdadeiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Se pode haver um limite de tamanho para esse tipo após a serialização.

Retorna:

  • (verdadeiro)

    Os documentos podem ter tamanho limitado após a serialização.

Desde:

  • 2.0.0



378
379
380
# Arquivo 'lib/mongo/protocol/serializers.rb', linha 378

def auto.size_limited?
  true
end