Play2-reactivemongo.Scala.None的Update Option字段不会出现错误



我有类MyClass与选项字段(例如f:Option[String])。我更新它的值(例如Some("abc")),它工作。如果我在另一个值(例如Some("xyz"))上更改它,它也可以工作。但我现在无法将其更新为None。没有错误。只是价值没有改变,我面对的是旧的。My update method

def update(id: String, document: T)(implicit writer: Writes[T]): Future[Either[ServiceException, T]] = {
document.update = Some(new DateTime())
Logger.debug(s"Updating document: [collection=$collectionName, id=$id, document=$document]")
Recover(collection.update(DBQueryBuilder.id(id), DBQueryBuilder.set(document))) {
  document
}

}

在DBQueryBuilder:

def id(objectId: String): JsObject = id(BSONObjectID(objectId))
def id(objectId: BSONObjectID): JsObject = Json.obj(jsId -> objectId)
def set[T](data: T)(implicit writer: Writes[T]): JsObject = Json.obj(SET -> data)

implicit val myClassDbFormat: Format[MyClass] = Json.format[MyClass]

我可以在日志中看到适当的字段值,但如果value = None =>什么都没有我使用play2-reactivemongo 0.10.5.0.akka23。Scala .

Thanks in advance

我只是想知道有一个问题与Json。format[MyClass] for Option.

就我个人而言,我经常为所有模型定义读者和作者。

这是一个简单的例子。我希望它能帮助你。

https://github.com/luongbalinh/play-mongo/blob/master/app/models/User.scala

相关内容

最新更新