我正在使用 play 2.2.3 和 play-reactivemongo 0.10.2(递归地使用 reactivemongo 0.10.0)开始一个项目。
我已经阅读了 reacticemongo 和 play-reactivemongo 的文档以及我在 github 上找到的一些项目,但我不知道如何以最干净的方式管理 mongo 的 id。
因为懒所以决定使用自动生成 json reader 和 writer(如https://github.com/ReactiveMongo/Play-ReactiveMongo所示)
package models
case class User(
age: Int,
firstName: String,
lastName: String,
feeds: List[Feed])
case class Feed(
name: String,
url: String)
object JsonFormats {
import play.api.libs.json.Json
import play.api.data._
import play.api.data.Forms._
// Generates Writes and Reads for Feed and User thanks to Json Macros
implicit val feedFormat = Json.format[Feed]
implicit val userFormat = Json.format[User]
}
在同一个文档中,还有一个很好的示例,说明了如何在集合中插入和查找文档。但它并没有说关于更新的事情。
当您必须更新文档时,您如何处理“_id”?
我被问到一个例子。这是一个 https://github.com/manuelleduc/bookmarks/tree/stackoverflow-example-1
当我调用 /bookmarks 路由时出现运行时异常。
[RuntimeException: JsError(List((/_id,List(ValidationError(error.expected.jsstring,WrappedArray()))), (/tags,List(ValidationError(error.path.missing,WrappedArray())))))]