我刚刚将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;"
答案 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中找到一个示例。