【发布时间】:2019-12-07 12:48:00
【问题描述】:
我开发了一个在 MongoDb 中保存 JSON 的 Spring 应用程序。 客户端能够通过输入时间间隔开始和结束来搜索数据。 为了能够使用正则表达式(lte 和 gte)从数据库中获取数据,我将时间保存为 UnixTimeStamp:
"TimeStamp": {
"StartTime": 1549371540000,
"EndTime" : 1549371540000,
"StartTimeZone":"Europe/Berlin",
"EndTimeZone":"Europe/Berlin"
}
过滤有效,但结果如下:
"TimeStamp": {
"StartTimeZone": "Europe/Berlin",
"EndTimeZone": "Europe/Berlin",
"EndTime": {
"$numberLong": "1549371540000"
},
"StartTime": {
"$numberLong": "1549371540000"
}
}
是否可以使用 $numberLong 键获取键值对而不是 StartTime 对象? 我也在考虑用 yyyy_mm_ddTHH:MM:SS+-Offset 节省时间 aso Iso 格式
但据我所知,我可以只使用正则表达式来过滤这种格式的时间。 处理时间是项目的重要组成部分,我想确保我以最佳实践方式处理这部分。
编辑: 在我的代码中,我要
for (Document doc : collection.find(query).projection(Projections.include(projectionList))) {
//Save the query result as a List of JSON-Objects
dataList.add(doc.toJson());
}
将结果保存为 json 列表。我知道 toJson 方法已被弃用,但我无法找到将文档转换为 JSON 表示法的方法。
【问题讨论】:
标签: java json mongodb time format