从MongoDB的ObjectId中获取时间信息

简介:

MongoDB默认使用_id字段作为主键,类型为ObjectIdObjectId的生成有一定的规则,详情可以查看这篇文章 - MongoDB深究之ObjectId。如果你在写入数据库的时候忘记写入创建时间,不用担心,完全可以通过_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,如需转载请自行联系原作者


相关文章
|
存储 NoSQL Unix
.NET生成MongoDB中的主键ObjectId
.NET生成MongoDB中的主键ObjectId
397 5
.NET生成MongoDB中的主键ObjectId
|
NoSQL Java MongoDB
Java对MongoDB的ObjectId的序列化问题
MongoDB在不特殊指认的情况下,默认的集合主键是“_id”,类型是ObjectId。ObjectId是一个12字节的BSON类型字符串,包含了UNIX时间戳,机器识别码,进程号,计数值信息。
5028 0
|
NoSQL 索引 MongoDB
MongoDB ObjectId详解及使用
MongoDB中我们经常会接触到一个自动生成的字段:”_id”,类型为ObjectId。 本文详解ObjectId的构成和使用。 ObjectId构成 之前我们使用MySQL等关系型数据库时,主键都是设置成自增的。
1565 0
|
存储 NoSQL MongoDB
MongoDB ObjectId
10月更文挑战第22天
380 2
|
NoSQL MongoDB 数据库
深入探究MongoDB的ObjectId:唯一性、顺序性与应用指南
深入探究MongoDB的ObjectId:唯一性、顺序性与应用指南
1527 0
|
存储 NoSQL JavaScript
源码学习:探究MongoDB - ObjectId最新的生成原理
源码学习:探究MongoDB - ObjectId最新的生成原理
|
JSON NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
|
NoSQL 数据库连接 MongoDB
基于Mongodb实现商品管理系统之根据商品编号查询商品信息编写讲解|学习笔记
快速学习基于 Mongodb 实现商品管理系统之根据商品编号查询商品信息编写讲解
|
NoSQL 数据库连接 API
基于Mongodb实现商品管理系统之查询所有商品信息编写讲解|学习笔记
快速学习基于 Mongodb 实现商品管理系统之查询所有商品信息编写讲解

推荐镜像

更多