如何把js 转换mongodb 日期中Date日期值转换成本地日期值

20:32 提问
mongo 时间转换,管道语句查询的时候将long型转换为日期字符串
图中capturetime 是number型,例如值为,转化为time 类型为日期字符串,比如
按赞数排序
new Date(1)
time:new date(“$capturetime”)这样写好像不行,new date 获取不到capturetime的值,显示$符号不是标准的日期格式
其他相关推荐mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)
作者:MCpang
字体:[ ] 类型:转载 时间:
MongoDB的文档类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象),需要的朋友可以参考下
MongoDB的文档类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象).
JSON的数据类型的局限性:
1.无日期类型,对日期型的处理较为繁琐
2.无法区分浮点数和整数、32位和64位
3.其他类型表示局限 如函数、正则式等
Mongodb使用BSON(Binary JSON)来组织数据,BSON还提供日期、32位数字、64位数字等类型。下面为在mongodb shell中这些类型在文档中是如何表示:
1、null& 用于表示空值或者不存在的字段。
{"name":null}
2.布尔& 布尔类型、即true和false
{"flag":true}/{"flag":false}
3.数字& mongodb中分32位整数、64位整数、64位浮点数
& &JavaScript只支持64位浮点数,shell中对32位的整数会进行自动的转换:
& 默认情况下,shell中的数字被mongdb当做是双精度。若从数据库中获取一个32位整数,修改了文档后在将文档保存到数据库的时候,这个整数已被转换成了浮点数(整数不变也会转换)。
& &shell中会用内嵌文档的方式显示64位整数:
& 数字智能表示为双精度数(64位浮点数)的另一个问题是,有些64位的整数并不能精确的表示64位浮点数。因此要是存入了一个64位整数然后在shell中查看,它显示一个内嵌的文档,表示可能不准确。
& 插入文档{"name":"apple","num":5},其中"num"设置为64位整数5.
& 查看如下:
& { "_id" : ObjectId("e2"), "name" : "apple", "num" : {"floatApprox" : 5} }
& 插入文档{"name":"orange","num":4775807}
& 查看如下:
& { "_id" : ObjectId("e3"), "name" : "apple", "num" : {"floatApprox" : 4776000 ,"top" :
, "bottom" : } }
& 以上实例(可自己尝试见证)文档参见:Mongodb权威指南
& 我在本机(win7 32位)插入如下文档:
& {"name":"apple","num":5}
& {"name":"orange","num":4775807}
& {"name":"peach","num":}
& &db.a.find()
& { "_id" : ObjectId("e4"), "name" : "apple", "num" : 5 }
& { "_id" : ObjectId("e5"), "name" : "orange", "num" : 4776000 }
& { "_id" : ObjectId("5000fbd232e6"), "name" : "peach", "num" : 9.776e+44 }
& 64位浮点数:
& {"num":3.14}/{"num":3}
4.字符串& UTF-8字符串都可以表示为字符串类型的数据
{"name":"orange"}
5.符号& shell中不支持,并将数据库里的符号类型都转换成字符串
6.对象id是文档的12字节的唯一ID
& {"x":Object()}
& Mongodb中存储的(同一个集合内)文档必须有,只有唯一的“_id”键。值可为任意类型,必须保证其唯一性,默认为ObjectId对象。至于mongodb为什么用ObjectId对象,以及它有什么好处等请翻阅相关资料。
& 下面是ObjectId的构成:
& ObjectId使用12字节的存储空间,每个字节两位十六进制数字,是一个24位的字符串。12字节按照如下方式生成:
& 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
&&& 时间戳&&&&& |& 机器码&& |& PID& |&&& 计数器
& -----------------------------------------------
& &时间戳:从标准的纪元开始的时间戳,单位为秒。
& &机器码:所在主机的唯一标示符,通常为机器主机名的散列值。
& &PID:产生ObjectId的进程标示符。
& &计数器:自动增加计数器,同一秒最多允许每个进程拥有256的3次方()个不同的ObjectId。
& 文档的"_id"键:
& 1.插入文档的时候,没有该键,系统自动创建一个。
& 2.mongodb服务器可自动创建,通常在客户端由驱动程序完成:
&&&& &减少数据库扩展的负担
&&&& &驱动程序提供丰富的API,可返回ObjectId,也可插入文档;若有服务器生成的话,驱动程序需单独的查询来确定插入的文档中的"_id"值。
7.日期型& 存储的是从标准纪元开始的毫秒数,不存储时区。
{"name":"xx","date":new Date()}& 本机查看:{ "_id" : ObjectId("e6"), "name" : "xx", "date" : ISODate("T05:32:38.189Z") }
8.正则式& 文档中可以包含正则表达式,采用javascript的正则表达式语法
{"regex":/[0-9]/g}
9.代码或者函数& javascript代码(mongodb中值直接保存到数据库,不对值进行执行,因此不存在安全问题)
& {"setName":function(){var name="jk";alert(name)}}
10.二进制数& 可以由任意字节的串组成。shell中无法使用。
11.最大值& BSON包括一个特殊类型,表示可能的最大值。shell没有这个类型。
12.最小值& BSON包括一个特殊类型,表示可能的最小值。shell没有这个类型。
13.未定义(undefined) 文档中也可以使用未定义类型
{"name":undefined}
14.数组& 值的集合或者列表可以表示成数组
{"name":["s","d","f"]}
15.内嵌文档& 文档可以包含文档,作为值嵌入到父文档中
{"sch" : "s"
&"catl" : {
&& "c1" : {"cls1" : "cs1","cls2" : "cs2","cls3" : "cs3"}
&& "c2" : {"cls1" : "cs1","cls2" : "cs2","cls3" : "cs3"}
&& "c3" : {"cls1" : "cs1","cls2" : "cs2","cls3" : "cs3"}
从面向对象的角度来理解文档,文档就是个对象,文档里面的key/value就是属性和属性值。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Spring data MongoDB 按操作时间查询例子_百度经验
&&&&&&&&&大学及以上Spring data MongoDB 按操作时间查询例子听语音
百度经验:博客添加了一项功能是访问统计功能.其中查询一天的数据,一周数据,一个月的数据等....用到了mongodb数据,我很自然也用了spring data mongodb,好吧下面写一个非常简单的spring data mongodb 按时间段查询数据的简单例子.百度经验:spring data mongodb mongodb 百度经验:1@Override& public long findBlogTodayAcceccCountByUserId(String userId) {&& & & Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);&& & &calendar.set(Calendar.MINUTE, 0);&& & &calendar.set(Calendar.SECOND, 0);&& & &Date todayStart = calendar.getTime();&& & &calendar.add(Calendar.DATE, 1);&& & &Date endStart = calendar.getTime();&& & &Query query = new Query();&& & &Criteria criteria = Criteria.where(&createTime&).gte(todayStart).lte(endStart);&& & query.addCriteria(criteria);&& & return mongoTemplate.count(query, getEntityClass());&&}2&Criteria提供了很多方法,我们这边先介绍基本文档的查询操作符,对于数组文档或者内嵌文档的操作符,我们下一篇在介绍。END经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(0)已投票(0)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验00106热门杂志第1期作文书写技巧912次分享第12期祝你好“孕”451次分享第1期当我们有了孩子325次分享第1期新学期 新气象168次分享第1期孕妇饮食指导526次分享◆请扫描分享到朋友圈MongoDB时间类型
时间: 23:45:19
&&&& 阅读:805
&&&& 评论:
&&&& 收藏:0
标签:mongdb时间类型
Date()  显示当前的时间
new Date  构建一个格林尼治时间 & 可以看到正好和Date()相差8小时,我们是+8时区,也就是时差相差8,所以+8小时就是系统当前时间
ISODate()  也是格林尼治时间
Sun Jan 24 2016 20:39:57 GMT+0800 (CST)
& new Date()
ISODate("T12:40:24.035Z")
& ISODate()
ISODate("T12:52:33.341Z")
& typeof Date()
& typeof new Date()
& ISODate("T12:52:33.341Z").valueOf()
&db.tb1.find({time:{$gt:new Date(9)}})
支持多种格式:
& db.tb1.insert({mydate:ISODate(" 07:58:51")})
& db.tb1.insert({mydate:ISODate(":58:51")})
& db.tb1.insert({mydate:ISODate("")})
也可以直接操作:
&db.tb1.find({"mydate":{$gt:ISODate("T07:58:51Z")}})和db.tb1.find({"mydate":{$gt:new Date("T07:58:51Z")}})相同
MongoDB存储时间类型数据时,都是先转换为UTC时间,然后存储到数据库中
toLocaleString()&返回的是包含当前时区信息的时间字符串
& ISODate("T12:52:33.341Z").toLocaleString()
Sun Jan 24 2016 20:52:33 GMT+0800 (CST)
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 mongodb 日期查询 的文章

 

随机推荐