MongoDB存储时间类型数据时,都是先转换为UTC时间,然后存储到数据库中 下面我们来看一个例子:
如上图
我现在在CST(China Standard Time中国标准时),所以字符串代表的时间为2014年2月28号 13:01:40,而new Date()存储在MongoDB中得数据时间为2014-02-28 05:01:38,两者大概相差8小时(忽略操作时间)。而UTC刚好比CST晚8小时,由此可见MongoDB在是把时间转换为UTC时间后存储的。这里也可以不用num来标识文档,而用ObjectId的前8位来判断时间早晚也是可以的,这里就不深入了介绍了。 构造日期时要完全指定时间 下面的例子会展示为什么要完全指定时间,不能只指定部分时间
本例中,使用字符串来构造日期类型。使用了四种不同构造方式:
产生了两种结果:
而且,没有看出容易记忆的逻辑关系。只有一个模式非常清晰,那就是把年月日时分秒全部指定好,那么生成的时间就是我想要的本地时区的时间,存储后MongoDB就转换为UTC标准时间。 |