Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从scala中的ReactiveMongo BSONDocument中获取BSON?_Scala_Bson_Reactivemongo - Fatal编程技术网

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

如何从scala中的ReactiveMongo BSONDocument中获取BSON?,scala,bson,reactivemongo,Scala,Bson,Reactivemongo,我有一个ReactiveMongo BSONDocument,但我想将其写入一个文件-我知道有BSON格式(),我想根据这些规范来编写它,但问题是我找不到任何方法调用来实现这一点。我已经能够将它转换为一个字节数组,但是当我默认转换为字符串UTF8格式时,问题就开始了 但是,BSON规范要求在开头使用32位数字。有图书馆可以帮我做这件事吗?如果不是,如何将表示32位数字的字符串和UTF8字符串一起添加,而不丢失其中一个或两个的编码 以下是我在Scala中得到的: import reactivemo

我有一个ReactiveMongo BSONDocument,但我想将其写入一个文件-我知道有BSON格式(),我想根据这些规范来编写它,但问题是我找不到任何方法调用来实现这一点。我已经能够将它转换为一个字节数组,但是当我默认转换为字符串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)

请注意,您正在使用