ho una chiave candidata (MongoDB chiave candidata, __id) questo è presenta come di seguito nel buffer di protocollo:binary-to-text encoding, i caratteri non stampabili, buffer di protocollo, MongoDB e BSON
message qrs_signature
{
required uint32 region_id = 1;
repeated fixed32 urls = 2;
};
Naturalmente Non riesco a utilizzare una stringa codificata dei protocolli buffer (tramite ParseToString(std::string)
) nel mio documento bson poiché può contenere caratteri non stampabili. Pertanto, sto usando la codifica ascii85 per codificare i dati (usando this library). Ho due domande.
- È codifica b85 bson-safe.
- Che cos'è bson's binary type for? c'è un modo in cui posso impiantare la mia stringa (binaria) in quel campo usando una chiamata API mongodb, o è solo zucchero sintattico per denotare un tipo di valore che deve essere elaborato in qualche modo (--ie, non un nativo entità mongodb)?
modifica
dati di visualizza append binary
API essendo codificato come esadecimale (OMG!), Base85 è quindi più efficiente dello spazio (22 byte per il record nel mio caso).
Aha, grazie per la convalida, ora vedo che esiste un metodo specifico per aggiungere dati binari chiamato "BSONObjBuilding :: AppendBinData", che occupa un campo di lunghezza. –