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()
对象
使用 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()
对象的长度
使用 BinData()
构造函数来创建 bdata
变量。
var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")
使用 .length()
返回对象的位大小。
bdata.length()
返回值为:
16