首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图的ReactiveMongo BSONHandler

地图的ReactiveMongo BSONHandler
EN

Stack Overflow用户
提问于 2016-05-12 09:26:08
回答 1查看 491关注 0票数 2

我有以下课程,并希望使用reactivemongo.bson.Macros.handler自动获取阅读器和作者。

代码语言:javascript
复制
case class Data(a: String, b: Map[String, String])
object Data {
  implicit val dataHandler = reactivemongo.bson.Macros.handler[Data]
}

但是它没有编译,说是Implicit Map[String,String] for 'value vs' not found

怎样才能做到这一点?我用的是reactivemongo_2.10 0.11.10

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-12 09:36:19

根据这个要旨的说法,我找到了一个解决方案:

代码语言:javascript
复制
case class Data(date: String, base: String, vs: Map[String, String])

object Data {
  implicit object BSONMapHandler extends BSONHandler[BSONDocument, Map[String, String]] {
    override def read(bson: BSONDocument): Map[String, String] = {
      bson.elements.map {
        case (key, value) => key -> value.asInstanceOf[BSONString].value
      }.toMap
    }

    override def write(t: Map[String, String]): BSONDocument = {
      val stream: Stream[Try[(String, BSONString)]] = t.map {
        case (key, value) => Try((key, BSONString(value)))
      }.toStream
      BSONDocument(stream)
    }
  }
  implicit val dataHandler = reactivemongo.bson.Macros.handler[Data]
}

不知道为什么reactivemongo默认不支持它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37182700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档