0

我刚刚将 play reactivemongo 从 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;"
4

1 回答 1

0

新插件 0.11 提供了带有 JSONSerializationPack 的 ReactiveMongo API(允许使用以东海岸到西海岸方法计算的 JSON)。

因此,servePlay Mongo 控制器中的操作使用 GridFS API 使用相同的 JSON 序列化(并且期望JsValue/JsObject但不是BSONValue/ BSONDocument)。

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

然后查询选择器必须从 更新BSONDocumentJson.obj

在示例应用程序中可以找到一个示例。

于 2015-07-02T18:08:07.877 回答