升级到0.11.0后发生reactivemongo错误

时间:2015-07-02 17:14:06

标签: playframework reactivemongo play-reactivemongo

我刚刚将playactivemongo从0.10.5.0.AKKA23升级到0.11.0.play24。但是,我在升级之前编译好的代码出现了以下错误。

val gridFS = new GridFS(db)
val file = gridFS.find(BSONDocument("filename" -> new BSONString(name)))
serve(gridFS).map(_.withHeaders(CONTENT_DISPOSITION -> "inline;"))

错误消息

[error]  required: reactivemongo.api.gridfs.GridFS[play.modules.reactivemongo.json.JSONSerializationPack.type]
[error] serve(gridFS).map(_.withHeaders(CONTENT_DISPOSITION -> "inline;"

1 个答案:

答案 0 :(得分:0)

新插件0.11为ReactiveMongo API提供了JSONSerializationPack(允许使用沿着海岸线方法估值的JSON)。

因此,Play Mongo控制器中的serve操作正在使用相同的JSON序列化的GridFS API(并期望JsValue / JsObject但不是BSONValue / { {1}})。

第一步是使用BSONDocument代替reactiveMongoApi.gridFS(考虑new GridFS是解析的API实例,如文档中所示)。 GridFS实例已正确初始化,以便与JSON一起使用。

然后,查询选择器必须从reactiveMongoApi更新为BSONDocument

可以在sample app中找到一个示例。