繁体   English   中英

如何从 Scala 中的 ReactiveMongo BSONDocument 获取 BSON?

[英]How to get the BSON from a ReactiveMongo BSONDocument in scala?

我有一个 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

文档中所示,您可以使用BSONDocument.pretty(myDoc)

请注意,您正在使用已弃用/正在删除的 BSON API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM