请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

日期类型如何存储 Date, Long?

请问下老师,日期类型如何存储最优化?

1.Date 类型有时区的细节需要注意,后续代码实现比对感觉构造时间略麻烦
2.存时间戳 Long 类型,存储方便,但是不方便阅读,范围查询和比较查询都好实现,代码编写查询逻辑也简单

但有人也说涉及聚合查询时按年,按月,还是Date类型方便,请问老师怎么看?

正在回答

1回答

Stannum 2019-05-14 09:11:45

同学你好~如果你使用的是4.0版本(或者至少是3.6版本)的话,其实很多聚合操作已经支持时区了

比如说从Date对象中提取月份的$month操作符,可以传入一个代表时区的参数:

{ $month: {

     date: ISODate("2000-01-01T00:00:00Z"),
     timezone: "+0800"

  }

}

类似支持时区操作的操作符还有不少,比如$dateToParts, $dateFromString等等,不知道这些是否可以帮助你简化对于数据库中Date类型字段的操作难度?

1 回复 有任何疑惑可以回复我~
  • 我想楼主的提问更多的在于对于时间数据的设计是用时间戳还是时间对象,其实我跟楼主一样也有这样的疑问,毕竟操作数据库时候都是通过对应语言的驱动来进行,看了老师的回答,我想设计关于时间的数据类型时候还是用时间对象吧
    回复 有任何疑惑可以回复我~ 2020-02-04 14:37:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信