Ra *_* Ka 4 scala mongodb playframework reactivemongo play-reactivemongo
我正在尝试使用以下方式在 MongoDB 中插入日期:
collection.insert(Json.obj("user"->"abc", "joined_date" -> DateTime.now))
Run Code Online (Sandbox Code Playgroud)
在数据库中:
{
"_id" : ObjectId("5865d99718969bca6a09450f"),
"user" : "abc",
"joined_date" : NumberLong("1483069847066")
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是日期以长毫秒格式存储在数据库中,但我想要的是它以 ISO 日期格式存储。
我在 MongoShell 中尝试保存相同的数据db.example.insert({user:"abc", joined_date:new Date()})
,结果如下:
{
"_id" : ObjectId("5865d838a4f98c5bb83b1eb8"),
"user" : "abc",
"joined_date" : ISODate("2016-12-30T03:44:56.824Z")
}
Run Code Online (Sandbox Code Playgroud)
那么,如何使用 ReactiveMongo 在数据库中以 ISODate 格式存储日期?
您正在使用 Play JSON 来表示 MongoDB 文档(而不是 BSON),并且日期是根据 Play JSON 模块转换为 JSON 数字的 Joda 日期。
您可以直接将 BSON 与驱动程序一起使用,并将日期作为BSONDateTime
.
BSONDocument("myDate" -> BSONDateTime(..))
Run Code Online (Sandbox Code Playgroud)
或者(假设 ReactiveMongo 版本 >= 0.11.9)您可以使用MongoDB JSON 扩展表示 $date: date_value
:
Json.obj("myDate" -> Json.obj("$date" -> dateTimeLong))
Run Code Online (Sandbox Code Playgroud)
记录了 ReactiveMongo 序列化支持的 JSON 格式。
归档时间: |
|
查看次数: |
1776 次 |
最近记录: |