所以,我有一个案例类以及 JSON 和 BSONDocument 格式的读者和作者。
问题是,当插入 MongoDB 时,我希望能够指定 BSONObjectID,这样我就可以在创建时返回它。但是,如果我id: BSONObjectID
在案例类中添加一个,我找不到让 JSON 验证/转换工作的方法。
这是我的代码:
case class Mini(username: String, email: String, quizAnswer1: List[String] )
implicit object MiniWriter extends BSONDocumentWriter[Mini] {
def write(mini: Mini): BSONDocument = BSONDocument(
"username" -> mini.username,
"email" -> mini.email,
"quizAnswer1" -> mini.quizAnswer1
)
}
implicit object MiniReader extends BSONDocumentReader[Mini] {
def read(doc: BSONDocument): Mini = Mini(
doc.getAs[String]("username").get,
doc.getAs[String]("email").get,
doc.getAs[List[String]]("quizAnswer1").toList.flatten
)
}
implicit val miniReads: Reads[Mini] = (
(JsPath \ "username").read[String] and
(JsPath \ "email").read[String] and
(JsPath \ "quizAnswer1").read[List[String]]
)(Mini.apply _)
implicit val miniWrites: Writes[Mini] = (
(JsPath \ "username").write[String] and
(JsPath \ "email").write[String] and
(JsPath \ "quizAnswer1").write[List[String]]
)(unlift(Mini.unapply))
我真的想避免使用同一模型的重复模型表示。有任何想法吗?