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

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

Overview

Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Estrategia de serialización del protocolo de cable MongoDB para un documento BSON.

Serializa y deserializa un solo documento.

Resumen del método de clase colapsar

Detalles del método de clase

.deserializar(buffer, options = {}) ⇒ Hash

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Deserializa un documento del flujo de E/S

Parámetros:

  • buffer (string)

    Búfer que contiene el documento codificado BSON.

  • opciones (Hash) (por defecto a: {})

Opciones Hash (options):

  • :deserialize_as_bson (booleano)

    Si realizar la deserialización de la sección utilizando BSON types en lugar de tipos nativos de Ruby siempre que sea posible.

Devuelve:

  • (encriptada)

    El documento BSON decodificado.



384
385
386
387
# Archivo 'lib/mongo/protocol/serializers.rb', línea 384

def sí mismo.deserializar(buffer, opciones = {})
  moda = opciones[:deserialize_as_bson] ? bson : nulo
  BSON::Documento.from_bson(buffer, **{ moda: moda })
end

.serialize(buffer, value, max_bson_size = nil, validating_keys = nil) ⇒ String

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Serializa un documento en el buffer

Parámetros:

  • buffer (string)

    Buffer para recibir el documento codificado en BSON.

  • Valor (encriptada)

    Documento para serializar como BSON.

Devuelve:

  • (string)

    Búfer con valor serializado.



364
365
366
367
368
369
370
371
372
# Archivo 'lib/mongo/protocol/serializers.rb', línea 364

def sí mismo.serializar(buffer, Valor, tamaño máximo de bson = nulo, validating_keys = nulo)
  tamaño inicial = buffer.longitud
  Valor.to_bson(buffer)
  serialized_size = buffer.longitud - tamaño inicial
  si tamaño máximo de bson && serialized_size > tamaño máximo de bson
    propagar Error::MaxBSONSize,
      "El documento supera el tamaño máximo de objeto BSON permitido después de la serialización. Tamaño serializado: #{serialized_size} bytes, tamaño máximo permitido: #{max_bson_size} bytes"
  end
end

.size_limited?true

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Si puede haber un límite de tamaño en este tipo después de la serialización.

Devuelve:

  • (cierto)

    Los documentos pueden tener un tamaño limitado durante la serialización.

Desde:

  • 2.0.0



394
395
396
# Archivo 'lib/mongo/protocol/serializers.rb', línea 394

def sí mismo.¿size_limited?
  true
end