模块:Mongo::Protocol::Serializers::Document Private

定义于:
build/Ruby-driver-v 2.19 /lib/mongo/protocol/serializers.rb

Overview

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

BSON文档的MongoDB传输协议序列化策略。

对单个文档进行序列化和反序列化。

类方法摘要折叠

类方法详细信息

deserialize (buffer, options = {}) ⇒哈希

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

从 IO流反序列化文档

参数:

  • 缓冲 ( string )

    包含BSON编码文档的缓冲区。

  • 选项 哈希 (默认为: {}

选项哈希 ( options ):

  • :deserialize_as_bson 布尔值

    是否尽可能使用BSON types而不是原生Ruby类型来执行节反序列化。

返回:

  • (哈希)

    已解码的BSON文档。



384
385
386
387
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/serializers.rb', 第384行

def self.反序列化(缓冲, 选项 = {})
  模式 = 选项[:deserialize_as_bson] ? :bson : nil
  BSON::文档.from_bson(缓冲, **{ 模式: 模式 })
end

序列化(缓冲区, 值, max_bson_size = nil, validating_keys = nil) ⇒ string

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将文档序列化到缓冲区

参数:

  • 缓冲 ( string )

    用于接收BSON编码文档的缓冲区。

  • (哈希)

    要序列化为 BSON 的文档。

返回:

  • ( string )

    具有序列化值的缓冲区。



364
365
366
367
368
369
370
371
372
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/serializers.rb', 第364行

def self.序列化(缓冲, , max_bson_size = nil, validating_keys = nil)
  start_size = 缓冲.长度
  .to_bson(缓冲)
  Serialized_size = 缓冲.长度 - start_size
  if max_bson_size && Serialized_size > max_bson_size
    提高 错误::MaxBSONSize,
      "序列化后,文档超过了允许的最大BSON对象大小。序列化大小: #{ serialized_size }字节,最大允许大小: #{ max_bson_size }字节"
  end
end

size_limited?true

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

序列化后是否对此类型有大小限制。

返回:

  • ( true )

    文档在序列化时可能会受到大小限制。

由于:

  • 2.0.0



394
395
396
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/serializers.rb', 第394行

def self.size_limited?
  true
end