我有一个候选键(mongodb 候选键,__id),它在协议缓冲区中如下所示:
message qrs_signature
{
required uint32 region_id = 1;
repeated fixed32 urls = 2;
};
自然,我不能ParseToString(std::string)
在我的 bson 文档中使用协议缓冲区编码字符串(via),因为它可以包含非打印字符。因此,我使用 ascii85 编码对数据进行编码(使用这个库)。我有两个问题。
- b85 编码 bson 安全吗?
- bson 的二进制类型是什么?有什么方法可以使用 mongodb API 调用将我的(二进制)字符串植入该字段,还是只是语法糖来表示需要以某种形式处理的值类型(即,不是本机MongoDB实体)?
编辑
api的append binary
节目数据被编码为十六进制(OMG!),因此 base85 更节省空间(在我的情况下,每条记录 22 个字节)。