Как получить BSON от реактивного go BSONDocument в scala? - PullRequest
0 голосов
/ 15 марта 2020

У меня есть реактивныймон go BSONDocument, но я хочу записать его в файл - я знаю, что есть формат BSON (http://bsonspec.org/spec.html), и я хочу написать его в соответствии с этими спецификациями, но проблема в том, что я не могу найти ни одного вызова метода для этого. Я смог преобразовать его в массив байтов, но проблема начинается, когда я конвертирую в строку, формат UTF8 по умолчанию. Однако спецификации BSON требуют 32-битного числа в начале. Есть ли библиотека, которая может сделать это для меня? Если нет, как я могу добавить строку, представляющую 32-битное число, и строку UTF8 вместе, не теряя кодировку для одного или обоих?

Вот что я получил в Scala:

import reactivemongo.bson.buffer.ArrayBSONBuffer

val doc = BSONDocument("data" -> overall)
val buffer = new ArrayBSONBuffer() 
BSONDocument.write(doc, buffer)
val bytes = buffer.array

val str = new String(bytes, Charset.forName("UTF8"))

Для справки, я знаю, что в Ruby мы можем сделать что-то подобное, но как мне сделать то же самое с реактивом go?

bson_data = BSON.serialize({data: arr}).to_s

1 Ответ

0 голосов
/ 18 марта 2020

Как указано в документации , вы можете использовать BSONDocument.pretty(myDoc).

Обратите внимание, что вы используете устарел / удаляется BSON API .

...