tengo una clave candidata (mongodb clave candidata, __id) eso parece que los siguientes en búferes de protocolo:codificación binaria-a-texto, caracteres no imprimibles, tampones de protocolo, mongodb y BSON
message qrs_signature
{
required uint32 region_id = 1;
repeated fixed32 urls = 2;
};
Naturalmente No puedo usar una cadena codificada de búferes de protocolo (a través de ParseToString(std::string)
) en mi documento bson, ya que puede contener caracteres que no sean de impresión. Por lo tanto, estoy usando la codificación ascii85 para codificar los datos (usando this library). Tengo dos preguntas.
- Es b85 la codificación bson-safe.
- ¿Qué es bson's binary type for? ¿Hay alguna forma de que pueda implantar mi cadena (binaria) en ese campo utilizando una llamada API de mongodb, o es solo azúcar sintáctica para denotar un tipo de valor que necesita ser procesado de alguna forma (--es decir, no nativo? entidad mongodb)?
edición
datos de muestran la append binary
de API se codifica como hexagonal (OMG!), Base85 es por lo tanto más eficiente del espacio (22 bytes por registro en mi caso).
Aha, gracias por la validación, ahora veo que hay un método específico para agregar datos binarios llamado 'BSONObjBuilding :: AppendBinData', que toma un campo de longitud. –