如何在MongoDB中将日期存储为日期而不是Int64?

时间:2015-12-07 18:34:56

标签: mongodb scala date mongodb-scala

我正在使用新的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中获取日期?

1 个答案:

答案 0 :(得分: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") 
}

希望有所帮助。