【问题标题】:How to get the BSON from a ReactiveMongo BSONDocument in scala?如何从 scala 中的 ReactiveMongo BSONDocument 获取 BSON?
【发布时间】: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


    【解决方案1】:

    documentation所示,您可以使用BSONDocument.pretty(myDoc)

    请注意,您使用的是deprecated/being removed BSON API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2017-04-11
      • 1970-01-01
      相关资源
      最近更新 更多