博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从MongoDB的ObjectId中获取时间信息
阅读量:5878 次
发布时间:2019-06-19

本文共 623 字,大约阅读时间需要 2 分钟。

MongoDB默认使用_id字段作为主键,类型为ObjectIdObjectId的生成有一定的规则,详情可以查看这篇文章 - 。如果你在写入数据库的时候忘记写入创建时间,不用担心,完全可以通过_id字段的值来还原当时的时间。看下面的mongodb script脚本:

db.getCollection('fees').find({}).forEach(function(item){    var _str = item._id.toString().substr(10, 8);    var _date = new Date(Number(parseInt(_str, 16).toString() + '000'));    item.createTime = _date;    db.fees.save(item);})

  forEach可以遍历collection中的每一条数据,然后逐一进行修改。item._id.toString()会将整个ObjectId("...")当成一个字符串来处理,然后从第10个字符开始,取8个字符,得到的是这条数据创建时的时间戳(不带毫秒位数)。在后面补上毫秒位数”000“,然后用Date()方法构造成时间对象,赋值给createTime属性。

本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/p/6605283.html,如需转载请自行联系原作者

你可能感兴趣的文章
NeHe OpenGL教程 第三十五课:播放AVI
查看>>
Linux下ping命令、traceroute命令、tracert命令的使用
查看>>
js replace,正则截取字符串内容
查看>>
socket
查看>>
Highcharts使用表格数据绘制图表
查看>>
Thinkphp5笔记三:创建基类
查看>>
hdu5373
查看>>
4.单链表的创建和建立
查看>>
Android 好看的搜索界面,大赞Animation
查看>>
查询反模式 - GroupBy、HAVING的理解
查看>>
[转]动态加载javascript
查看>>
【协议】5、gossip 协议
查看>>
基于配置文件的redis的主从复制
查看>>
hasura graphql 角色访问控制
查看>>
springmvc中controller内方法跳转forward?redirect?
查看>>
C#委托,事件理解入门 (译稿)转载
查看>>
容器的end()方法
查看>>
[转] Agile Software Development 敏捷软件开发
查看>>
HDU 1007 Quoit Design (最小点对,模板题)
查看>>
Windows Phone 7 自定义事件
查看>>