MongoDB - 存储没有时区的日期

时间:2016-07-15 16:43:08

标签: mongodb date mongodb-query spring-data-mongodb mongodb-java

我们有一个简单的应用程序,我们所有的用户都在同一时区&因此,我们不想将时区信息存储在mongo日期对象中。

这种极端步骤的原因是我们使用由不同开发人员管理的通用数据库进行多个微服务。它们中的每一个都需要在查询和显示中明确设置与时区相关的内容。在无效的数据集中忘记了相同的结果。

目前MongoDB人员Mongo Data Types

不支持在没有时区的情况下存储日期。

只是急于知道这是他们在mongo中表示没有时区的日期的任何替代方法,通过它我们仍然可以利用mongo数据库查询基于日期的语法,如日期范围,日期等。

同时,DBA可以方便地阅读和管理记录。

2 个答案:

答案 0 :(得分:0)

看看这个答案:https://stackoverflow.com/a/6776273/6105830

您可以使用两种类型的长表示(毫秒或格式yyyyMMddHHmmss)。这些是不存储时区的唯一方法,仍然可以进行范围查询。

不幸的是,您丢失了一些聚合属性。但你可以做一些事情,比如保留两个表示并在适当的时候使用它们。

答案 1 :(得分:0)

您可以考虑将所有日期存储在UTC中,并以UTC呈现给用户,因此,客户端JavaScript,服务器或MongoDB不会进行静默转换,因此不会造成混乱。 您可以这样操作:new Date(Date.UTC(2000,01,28)) 这里是MDN link