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

Definido em:
build/ruby-driver-v2.19/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 .



384
385
386
387
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/serializers.rb', linha 384

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, validate_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.



364
365
366
367
368
369
370
371
372
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/serializers.rb', linha 364

def auto.serializar(buffer, valor, max_bson_size = nada, validate_keys = nada)
  start_size = buffer.Tamanho
  valor.to_bson(buffer)
  serialized_size = buffer.Tamanho - start_size
  se 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
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



394
395
396
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/serializers.rb', linha 394

def auto.size_limited?
  true
end