mongodb踩坑

mongo中的日期,在显示上,会比我们正常的时间少8h。

如果向mongo中插入数据,数据库显示的时间会少8h

如果从mongo中查出数据,那么在idea中会是正常的;而如果是在datagrip/navicat中查,那么显示的时间还是少了8h

这只是显示的问题,而对实际操作没有影响。我们在存入数据或者说查找数据的时候,只需要根据真实的业务上需要的时间去操作即可。

还有一个就是mongoTemplate查找的时候,要传入字符串,否则会查不到。我想这个原因就和redis中只能存储字符串一样的道理吧。

一个业务流程:

- 查找条件是:在Java代码中定义一个data类型的ArrayList,然后查找mongo数据库中,是这些时间对应的数据。

为了模拟查询数据,首先我修改了mongo中的数据,把一条数据改成了今天的日期。然后就用junit单元测试去调试。发现查出来的数据的日期却显示明天的。在这里卡了比较久时间,一直在想为什么我数据库时间设置成了今天的日期,但是查询出的数据的日期却是明天的。

在网上查找后,我得出结论,存入mongo中的时间类型字段,会-8h,而查出来又是正常的,这只是由于mongo中时区设置的问题,而且这样是不影响使用的,只是显示上这样而已。

所以,我就回到mongo数据库中查看我设置的这个日期,这里就比较关键,它显示的是11/7 16:00。根据刚刚说的,会-8h,那么查出来的话就是11/8 0:00。这也就解释了为什么我存的数据的日期是今天,但是查出来的数据日期却显示明天。

posted @ 2022-11-07 13:40  pzistart  阅读(182)  评论(0编辑  收藏  举报