【发布时间】:2020-06-26 22:06:49
【问题描述】:
我有一个 ReactiveMongo 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 中,我们可以做这样的事情,但是如何用 ReactiveMongo 做同样的事情呢?
bson_data = BSON.serialize({data: arr}).to_s
【问题讨论】:
标签: scala bson reactivemongo