欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

深究从MongoDB的ObjectId中获取时间信息

程序员文章站 2022-03-24 07:52:45
mongodb默认使用_id字段作为主键,类型为objectid。objectid的生成有一定的规则,详情可以查看这篇文章 - mongodb深究之objectid。如果你...

mongodb默认使用_id字段作为主键,类型为objectid。objectid的生成有一定的规则,详情可以查看这篇文章 - 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属性。

以上所述是小编给大家介绍的深究从mongodb的objectid中获取时间信息,希望对大家有所帮助