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中获取时间信息,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
express+mongoose实现对mongodb增删改查操作详解
修复 Mac brew 安装 mongodb 报 Error: No available formula with the name ‘mongodb’ 问题详解
网友评论