У меня есть ключ-кандидат (ключ-кандидат mongodb, __id), который выглядит следующим образом в буферах протокола:
message qrs_signature
{
required uint32 region_id = 1;
repeated fixed32 urls = 2;
};
Естественно, я не могу использовать строку, закодированную буферами протокола (через ParseToString(std::string)
)в моем документе bson, поскольку он может содержать непечатаемые символы.Поэтому я использую кодировку ascii85 для кодирования данных (используя this library ).У меня два вопроса.
- Является ли кодировка b85 безопасной для bson.
- Что такое двоичный тип bson для ?есть ли способ, которым я могу имплантировать свою (двоичную) строку в это поле с помощью вызова API mongodb, или это просто синтаксический сахар для обозначения типа значения, который должен быть обработан в некоторой форме (--ie, а не нативныймонгодб сущность)?
edit
Данные шоу API append binary
, закодированные в шестнадцатеричном формате (OMG!), Поэтому base85 более экономичны (22 байта на запись вмой случай).