MongoDB文档(二)--查询
(一)查询文档
查询文档可以使用以下方法
- # 以非结构化的方式显示所有的文档
- db.<collectionName>.find(document)
- # 以结构化的方式显示所有文档
- db.<collectionName>.find(document).pretty()
- # 只返回一个文档(结构化方式)
- db.<collectionName>.findOne()
测试1 : 使用find()方法以非结构化的方式查询文档
- > db.blog.find()
- { "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"), "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理", "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html", "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...", "tags" : [ "Linux", "study" ], "post" : "2020-05-13 23:17", "views" : 57, "comments" : [ { "user" : "user1", "message" : "mark!", "like" : 0 } ] }
- { "_id" : ObjectId("5ebd71b4c50e24a9d8fb2a7b"), "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理", "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html", "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...", "tags" : [ "Linux", "study" ], "post" : "2020-05-13 23:17", "views" : 57, "comments" : [ { "user" : "user1", "message" : "mark!", "like" : 0 } ] }
- { "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7c"), "title" : "如何为Linux服务器添加磁盘", "Link" : "https://www.cnblogs.com/lijiaman/p/12885028.html", "summary" : "Linux服务器如果磁盘不够用了,就需要增加新的磁盘,磁盘添加到使用通常有4个步骤...", "tags" : [ "Linux", "study" ], "post" : "2020-05-13 21:31", "views" : 25, "comments" : "" }
- { "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7d"), "title" : "MySQL闪回工具--MyFlash", "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html", "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...", "tags" : [ "mysql", "study" ], "post" : "2020-04-24 21:38", "views" : 23, "comments" : "" }
- >
测试2:使用pretty()方法以结构化的方式查询文档
- > db.blog.find().pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- {
- "_id" : ObjectId("5ebd71b4c50e24a9d8fb2a7b"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- {
- "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7c"),
- "title" : "如何为Linux服务器添加磁盘",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885028.html",
- "summary" : "Linux服务器如果磁盘不够用了,就需要增加新的磁盘,磁盘添加到使用通常有4个步骤...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 21:31",
- "views" : 25,
- "comments" : ""
- }
- {
- "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7d"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
测试3: 使用findOne()方法返回一个结构化文档
- > db.blog.findOne()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- >
(二)MongoDB与RDBMS等效的where子句
操作 | 语法 | 例子 | RDBMS等效例子 |
相等(=) | {<key>:<value>} | db.blog.find({title:"MySQL闪回工具--MyFlash"}) | where title="MySQL闪回工具--MyFlash" |
大于(>) | {<key>:{$gt:<value>}} | db.blog.find({views:{$gt:40}}) | where views > 40 |
大于等于(>=) | {<key>:{$gte:<value>}} | db.blog.find({views:{$gte:57}}) | where views>=57 |
小于(<) | {<key>:{$lt:<value>}} | db.blog.find({views:{$lt:25}}) | where views<25 |
小于等于(<=) | {<key>:{$lte:<value>}} | db.blog.find({views:{$lte:25}}) | where views<=25 |
不等于(<>) | {<key>:{$ne:<value>}} | db.blog.find({views:{$ne:25}}) | where views!=25 |
例子1:查看blog集合中标题为“MySQL闪回工具--MyFlash”的文档
- > db.blog.find({title:"MySQL闪回工具--MyFlash"}).pretty()
- {
- "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7d"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
例子2 :查看blog集合中浏览次数大于40的文档
- > db.blog.find({views:{$gt:40}}).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- >
例子3 :查看blog集合中浏览次数大于等于57次的文档
- > db.blog.find({views:{$gte:57}}).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- >
例子4:查询blog集合中浏览次数小于25次的文档
- > db.blog.find({views:{$lt:25}}).pretty()
- {
- "_id" : ObjectId("5ebe674278420c5d36520584"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
例子5:查询blog集合中浏览此时小于等于25次的文档
- > db.blog.find({views:{$lte:25}}).pretty()
- {
- "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7c"),
- "title" : "如何为Linux服务器添加磁盘",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885028.html",
- "summary" : "Linux服务器如果磁盘不够用了,就需要增加新的磁盘,磁盘添加到使用通常有4个步骤...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 21:31",
- "views" : 25,
- "comments" : ""
- }
- {
- "_id" : ObjectId("5ebe674278420c5d36520584"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
例子6:查询blog集合中浏览次数不等于25次的文档
- > db.blog.find({views:{$ne:25}}).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- {
- "_id" : ObjectId("5ebe674278420c5d36520584"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
(三)MongoDB中的AND操作
AND的语法:
- db.<collectionName>.find(
- {
- $and:[
- {key1:value1},{key2:value2}
- ]
- }
- ).pretty()
例子 :查询blog集合中标题为“如何为Linux服务器添加磁盘”并且浏览次数大于20次的文档
- > db.blog.find(
- ... {
- ... $and : [
- ... {title:"如何为Linux服务器添加磁盘"},
- ... {views:{$gt:20}}
- ... ]
- ... }
- ... ).pretty()
- {
- "_id" : ObjectId("5ebd72d8c50e24a9d8fb2a7c"),
- "title" : "如何为Linux服务器添加磁盘",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885028.html",
- "summary" : "Linux服务器如果磁盘不够用了,就需要增加新的磁盘,磁盘添加到使用通常有4个步骤...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 21:31",
- "views" : 25,
- "comments" : ""
- }
- >
上面的查询相当于RDBMS中的:
- select * from blog where title="如何为Linux服务器添加磁盘" and views>20;
(四)MongoDB中的or操作
OR的语法:
- db.<collectionName>.find(
- {
- $or:[
- {<key1>:<value1>},{<key2>:<value2>}
- ]
- }
- ).pretty()
例子:查询blog集合中访问量在40以上或者是标题为“MySQL闪回工具--MyFlash”的文档
- > db.blog.find(
- ... {
- ... $or : [
- ... {views:{$gt:40}},
- ... {title:"MySQL闪回工具--MyFlash"}
- ... ]
- ... }
- ... ).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- {
- "_id" : ObjectId("5ebe674278420c5d36520584"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
上面的查询相当于RDBMS中的:
- select * from blog where views>40 or title="MySQL闪回工具--MyFlash"
(五)MongoDB中的AND和OR结合在一起
例子:查看bolg集合中Link为"https://www.cnblogs.com/lijiaman/p/12770415.html"且浏览量大于40或者是标题为"MySQL闪回工具--MyFlash"的文档。
- > db.blog.find(
- ... {
- ... Link : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- ... $or : [{views:{$gt:40}},{title:"MySQL闪回工具--MyFlash"}]
- ... }
- ... ).pretty()
- {
- "_id" : ObjectId("5ebe674278420c5d36520584"),
- "title" : "MySQL闪回工具--MyFlash",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12770415.html",
- "summary" : "MyFlash介绍 MyFlash是美团开发的一个回滚DML操作的工具,该工具是开源的...",
- "tags" : [
- "mysql",
- "study"
- ],
- "post" : "2020-04-24 21:38",
- "views" : 23,
- "comments" : ""
- }
- >
上面的查询相当于RDBMS中的:
- select *
- from blog
- where link='https://www.cnblogs.com/lijiaman/p/12770415.html'
- and (views>40 or title='MySQL闪回工具--MyFlash')
(六)MongoDB中的嵌套查询
对于文档里面还包含文档的情况,可以使用嵌套查询,查询内部文档信息。
(6.1)匹配嵌套文档
例子:查询blog集合中comments字段等于{ "user" : "user1", "message" : "mark!", "like" : 0 }的文档
- > db.blog.find({comments:{ "user" : "user1", "message" : "mark!", "like" : 0 }}).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- >
(6.2)查询嵌套字段
父字段与子字段之间用“.”隔开
例子:查询blog表中comments字段中嵌套的字段user等于“user1”的文档
- > db.blog.find({"comments.user":"user1"}).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
- >
(6.3)嵌套查询指定AND条件
查询comments字段中user字段为“user1”,comments字段中like字段为0,views字段为57的文档。
- > db.blog.find({"comments.user":"user1" , "comments.like":0,views:57}).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
或者可以直接使用$and来查询
- > db.blog.find({
- ... $and : [
- ... {"comments.user":"user1"},
- ... {"comments.like":0},
- ... {views:57}
- ... ]
- ... }).pretty()
- {
- "_id" : ObjectId("5ebd7133c50e24a9d8fb2a7a"),
- "title" : "Linux 物理卷(PV)、逻辑卷(LV)、卷组(VG)管理",
- "Link" : "https://www.cnblogs.com/lijiaman/p/12885649.html",
- "summary" : "(一)相关概念逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先...",
- "tags" : [
- "Linux",
- "study"
- ],
- "post" : "2020-05-13 23:17",
- "views" : 57,
- "comments" : [
- {
- "user" : "user1",
- "message" : "mark!",
- "like" : 0
- }
- ]
- }
【完】
MongoDB文档(二)--查询的更多相关文章
- MongoDB 文档的查询和插入操作
MongoDB是文档型数据库,有一些专门的术语,和关系型DB相似,但也有差异,例如,Collection类似于关系型DB的Table,document类似于row,key/value pair类似于c ...
- MongoDB的学习--文档的查询
继续关于<MongoDB权威指南>记录,今天的内容是文档的查询~~ MongoDB官网地址:http://www.mongodb.org/ 我使用的是MongoDB 2.4.8 find函 ...
- MongoDB(四):数据类型、插入文档、查询文档
1. 数据类型 MongoDB支持许多数据类型. 字符串 - 这是用于存储数据的最常用的数据类型.MongoDB中的字符串必须为UTF-8. 整型 - 此类型用于存储数值. 整数可以是32位或64位, ...
- mongodb内嵌文档的查询
本文转自:http://blog.163.com/wm_at163/blog/static/1321734902012526103825481/ 1 > db.blog.findOne() { ...
- MongoDB文档的基本操作
1. MongoDB的安装方法 (1)下载MongoDB 相应的版本: (2)设置数据文件和日志文件的存放目录: (3)启动MongoDB服务: (4)将MongoDB作为服务启动. 2. Mongo ...
- MongoDB自学------(3)MongoDB文档操作
一.插入文档 二.查询文档 三.更新文档 可以看到标题(title)由原来的 "Mongodb" 更新为了 "MongoDBtest". 以上语句只会修改第一条 ...
- mongodb文档的CRUD
本章会介绍对数据库移入或者移出数据的基本操作 向集合添加文档 从集合删除文档 更新现有的文档 为这些操作选择合适的安全级别 添加删除数据库 添加数据库 :use foo 如果存在foo 就use ...
- mongoDB 文档概念
mongoDB 文档概念 什么是文档 文档是 mongodb 基本的数据组织单元,类似于mysql 中的记录 文档由多个键值对组成,每个键值对表达一个数据项 属于 bson 数据 ps: bson ...
- mongoDB 文档操作_删
mongoDB 文档删除 MySQL对比 mysql delete from table where ... mongo db.collection.deleteOne(query) 删除函数 del ...
随机推荐
- Kubectl exec 的工作原理解读
对于经常和 Kubernetes 打交道的 YAML 工程师来说,最常用的命令就是 kubectl exec 了,通过它可以直接在容器内执行命令来调试应用程序.如果你不满足于只是用用而已,想了解 ku ...
- 【JUC】CyclicBarrier和Semaphore的使用
CyclicBarrier的使用 CyclicBarrier:可以让一组检测到一个屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有的屏障拦截的线程才会继续执行,线程进入屏障通过Cyclic ...
- [CSharp]传一个包含多个属性的对象,只改变其中个别属性值的方法
需求 假如有这么一个需求,一个对象Person内的属性设置外包给了另外一个类Options, 而要设这个Person对象的属性,就必须传一个Options实例, 但又不能每个属性重新设一遍,只设要修改 ...
- Linux显示行号设置
linux显示行号设置 第一步,打开vim vi ~/.vimrc 第二步,在该文件中加入一行,命令如下: set nu # 显示行号 set nonu # 不显示行号 微信公众号:喵哥解说 公众号介 ...
- Springboot 内置tomcat 基本配置收集整理
配置一: server:# tomcat 配置 tomcat: # 接收队列长度 accept-count: 1000 # 最小空闲线程数 min-spare-threads ...
- web-信息泄露基础知识总结(持续更新)
web-信息泄露 1.git泄露 Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等.发布代码的时候,如果没 ...
- 使用turtle库画同切圆
import turtle as t t.setup(600,600,None,None) t.pensize(5) t.penup() t.pendown() t.pencolor("re ...
- Java实现 LeetCode 738 单调递增的数字(暴力)
738. 单调递增的数字 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增. (当且仅当每个相邻位数上的数字 x 和 y 满足 x <= ...
- Java实现 LeetCode 1111 有效括号的嵌套深度(阅读理解题,位运算)
1111. 有效括号的嵌套深度 有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然.详情参见题末「有效括号字符串」部分. 嵌套深度 depth 定义:即有效括号字符串嵌套的层数, ...
- Java实现 蓝桥杯VIP 算法提高 计算时间
算法提高 计算时间 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个t,将t秒转化为HH:MM:SS的形式,表示HH小时MM分钟SS秒.HH,MM,SS均是两位数,如果小于10用0补到 ...