1

我正在使用新的 MongoDB Scala 驱动程序。当我存储 java.util.Date 时,它​​作为 Int64 而不是 MongoDB Date 存储在 MongoDB 中。我有一些看起来像这样的代码:

implicit val writer = new Writes[Forecast] {
  def writes(x: Forecast): JsValue = {
    Json.obj(
      // ...
      "issueDateTime" -> x.issueDateTime // which is a java.util.Date
      // ...
    )
  }
}

但最终在 MongoDB 中的是 Int64,而不是 Date。如何在 MongoDB 中获取日期?

4

1 回答 1

2

如果您使用的是最新的MongoDB Scala Driver v1.1。不要使用 Json.obj 来构建您的文档,而是尝试使用Document类。

BsonTransformer会将java.util.Date转换为BsonDateTime

例如:

val newdate = new Date()
val doc: Document = Document("test" -> newdate)
collection.insertOne(doc).results()

将导致:

{  "_id" : ObjectId("56665bf619a63d9e538b2851"), 
    "test" : ISODate("2015-12-08T04:26:29.999Z") 
}

希望有帮助。

于 2015-12-08T05:05:15.230 回答