繁体   English   中英

日期范围存储在数据库中

[英]Date range storing in database

我试图使用mongodb将daterange值存储在数据库中,所以我使用了String返回类型,但是我无法保存daterange。 将日期范围直接保存在数据库中是否可行,或者我必须将日期范围拆分为开始日期和结束日期并存储在数据库中? 前端是AngularJS,后端是mongoDB ...

MongoDB不提供任何类型的DateRange数据类型。

Java8提供了PeriodDuration类型。 在Java8之前,有一个很棒的Joda Time库,它还提供了Period和Duration数据类型。

Java的MongoDB库没有针对这些类型的任何转换器。 它只知道java.util.Data

但是,如果要存储Java8或Joda PeriodDuration ,则需要为Java MongoDB Driver编写客户数据类型转换器,或者直接在应用程序代码中进行转换。 (两者几乎相同)。

这样,您可以将日期范围另存为{ range: {from: ISODate("2015-01-01T00:00:00.000Z"), to: ISODate("2015-01-02T00:00:00.000Z") } }在MongoDB中。

然后,您当然必须对range.fromrange.to字段进行查询。


当然,第二部分是将HTML日期范围选择器中的值正确序列化为String,并且可以由Java后端读取。

虽然要确保(例如,仅通过使用System.out.println(...) ),但Java正确反序列化了数据。

如果一切正常,则可以使用MongoDB,即将DateRange对象转换为两个java.util.Date对象,等等。pp。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM