MongoDB中的日期查询命令的记录:大于、小于、等于、范围内、(mongoVUE 操作记录)

问题:
1,ISODate("2016-01-01T00:00:00Z"),这个是什么日期格式。
2,mongo vue的时间类型属性的相关查询。包括,大于某个时间,小于某个时间,在某一段时间范围。
3,了解一下mongo数据库中存储时间Date类型数据的秘密。

MongoDB 日期查询目前可通过Date 和ISODate两种方式:
1.Date方式。

例如startDate<=2012.12.7且endDate>=2012.12.7:可翻译为
"startDate":{$lte:new Date(2012,11,7)},"endDate":{$gte:new Date(2012,11,7)}。
如下是查询日期大于等于2016年12月1日的记录条数(注意,中间的月份写11,就是12月)
db.xxx.find({"updateTime" : {$gte:new Date(2016,11,1)}})
看下图,发现,mongo vue自动给日期转换为ISODate的格式了。

2.ISODate方式。
可以看到上面写的方式最后也转化为这个日期格式。
ISODate("2016-01-01T00:00:00Z")
看这个奇怪的日期格式。注意,日期后面最后个字母是Z,而我们一般debug所看到的日期是没有这个Z的,不信我给你debug看。

UTC 通用标准时,以z来标识
mongo中的时间与China系统时间相差了8个小时,
这是因为mongo中的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间。而系统时间使用的是GMT+0800时间,两者正好相差8个小时。
下面把这个标准时间转换成我们自己的时间。知道这个,在下面查时间范围啥的,就好说了。

db.xxx.find({"updateTime" : {$gte:new Date("2016-11-7T01:16:33.303Z")}})

db.xxx.find({"updateTime" : {"$gte":ISODate("2013-01-17T01:16:33.303Z")}})

{"updateTime" : {"$gte":ISODate("2016-11-28T11:16:33.303Z"),"$lte":ISODate("2016-12-05T01:16:33.303Z")}}

惭愧啊,我想试试$e,这个等于某个日期点的查询,就是没有成功。有谁知道的话,求告知。
日后,知道了,再来更新吧。

为了测试,mongo数据库里面存的日期类型的数据,确实是比当前时间晚8小时,然后就新插入一条数据到数据库,就有如下图:
不过,你Java代码从数据库取出来的时候,这个日期如果不加格式化的话,那么你在前台得到的时间就是一串数字,也就是那个时间所表示的毫秒数,也就是时间戳。这个我测试过了,就不上这个图了。你可以搜索下怎么把时间戳,给格式化成正确时间。

<p> <span><span style="font-size:14px;"><strong>一、课程简介</strong></span></span> </p> <p> <span><span style="color:#E56600;font-size:14px;">  『</span><span style="color:#E56600;font-size:14px;">Java学习指南系列</span><span style="color:#E56600;"></span><span style="color:#E56600;font-size:14px;">』</span></span><span>的第21篇教程 ,MyBatis 篇,是Java系列的高级课程。本篇介绍 MyBatis 的使用方法,使用 MyBatis 进行数据库开发的相关技术。</span> </p> <p> <span><span></span><span>    MyBatis 是一个基于JDBC的数据库工具框架,使用它可以快速地实现对数据库的访问操作。与之相似的框架还有 af-sql 和 Hibernate。</span><span></span><span style="font-size:14px;"></span><span style="font-size:14px;"></span><br /> </span> </p> <p> <span><span style="font-size:14px;"><br /> </span></span> </p> <p> <span><span><strong>二、主要内容 </strong></span><span style="font-size:14px;"><strong></strong></span></span> </p> <span style="color:#3D3D3D;"></span> <p> <span style="font-size:14px;">本篇主要包含以下内容:</span> </p> <p> <span style="font-size:14px;">* 在项目中加入 MyBatis 支持</span> </p> <p> <span style="font-size:14px;">* 基于 MyBatis 的查询</span> </p> <p> <span style="font-size:14px;">* 基于 MyBatis 的插入,自增主键的配置</span> </p> <p> <span style="font-size:14px;">* 基于 MyBatis 的更新与删除操作</span> </p> <p> <span style="font-size:14px;">* ResultMap 自定义结果映射</span> </p> <p> <span style="font-size:14px;">* Dynamic SQL 动态可变的SQL</span> </p> <p> <span style="font-size:14px;">* 注解方式的 Mapper定义</span> </p> <p> <span style="font-size:14px;">* MyBatis 在Web项目中的应用,全局工厂实例的定义</span> </p> <p> <span style="font-size:14px;">* 添加Log4j支持,输出MyBatis的日志</span><br /> <span style="font-size:14px;"></span> </p> <p> <span><span style="font-size:14px;"><strong>三、课程体系</strong></span></span> </p> <p> <span><span style="font-size:14px;">〖Java学习指南</span><span style="font-size:14px;">系列</span><span style="font-size:14px;">〗</span></span><span>:包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。</span> </p> <p> <span><span style="color:#E56600;font-size:14px;">〖网站开发</span><span style="font-size:14px;">系列</span><span style="color:#E56600;"></span><span style="color:#E56600;font-size:14px;">〗</span></span><span><span style="color:#E56600;font-size:14px;">:</span><span style="font-size:14px;">包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。</span></span> </p>
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页