Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

BinData()

在此页面上

  • 定义
  • 兼容性
  • 行为
  • 示例

创建二进制数据对象。

BinData 通过以下语法实现:

BinData(<sub_type>,<buffer>)
Parameter
类型
说明
sub_type
整型
二进制子类型
buffer
字符串
包含二进制数据的缓冲区对象。 必须是基本 64 编码的string值。
返回:二进制数据对象。

sub_type指定以下值之一:

数值
说明
0
通用二进制子类型
1
函数数据
2
二进制(旧版)
3
UUID(旧)
4
UUID
5
MD5
6
加密的 BSON 值
7

压缩时间序列数据

5.2 版本中的新增功能

8
敏感数据,例如密钥或密码。 MongoDB 不会记录子类型为 8 的二进制数据的字面值。相反,MongoDB 会记录占位符值###
9
向量数据是由相同类型的数字组成的密集数组。
128
自定义数据

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

系统的字节序取决于机器的架构。 BSON数据中的数字始终存储为小端,如果您的系统是大端,这意味着数字数据会在大端和小端之间转换。

在位测试匹配表达式操作符的上下文中:

BinData值充当 位掩码 和 被解释为任意长度的无符号小端数。最低可寻址字节始终被解释为最低有效字节。 同样, BinData中的最高可寻址字节始终被解释为最高有效字节。

使用 BinData() 构造函数来创建 bdata 变量。

var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")

将此对象插入到 testbin 集合。

db.testbin.insertOne( { _id : 1, bin_data: bdata } )

查询 testbin 集合中插入的文档。

db.testbin.find()

您可以看到存储在集合中的二进制 buffer

{
_id: 1,
bin_data: Binary(Buffer.from("81fd547317474c9d8743f10642b3bb99", "hex"), 0)
}

使用 BinData() 构造函数来创建 bdata 变量。

var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")

使用 .length() 返回对象的位大小。

bdata.length()

返回值为:

16

后退

Binary.createFromHexString