Chr*_*ter 6 scala mongodb playframework play-reactivemongo
我正在尝试使用Play-ReactiveMongo插件在Play和Angular中读取/写入MongoDB中的简单记录.该插件似乎是一个不错的选择,因为它允许您使用简单的案例类和常规JSON,而不是在BSON和JSON之间显式转换.但是使用插件的几个例子似乎没有涵盖如何在同一框架内将MongoDB对象ID映射到JSON或从JSON映射.这一切似乎都适用于在后台加载隐式(=魔术给我)读取/写入,但它们似乎不处理对象ID.
我的代码基于Alex Lashford的现代Web模板,与使用JSON读/写的Stephan Godbillion的示例非常相似,但Alex和Stephan都没有显示与MongoDB对象ID有关的任何内容.
我的数据记录需要某种唯一的ID,所以我可以获取和更新它们等等,使用MongoDB提供的那个是有意义的,但我似乎无法在Play ReactiveMongo中找到一种干净利用的方法.插入.
有没有人知道一个例子,它展示了如何将Play ReactiveMongo插件与JSON集合一起使用,以及某种方式将对象ID映射到/从JSON,而不必将我的所有处理转换为使用BSON?
我通过创建另一个case
类解决了这个问题:
case class Id($oid: String)
Run Code Online (Sandbox Code Playgroud)
然后按如下方式使用它:
case class User(_id: Id, ...)
Run Code Online (Sandbox Code Playgroud)
您必须导入 Json 转换器
implicit val idFormat = Json.format[Id]
implicit val userFormat = Json.format[User]
Run Code Online (Sandbox Code Playgroud)