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 = newDate(Number(parseInt(_str, 16).toString() +'000'));
item.createTime = _date;
db.fees.save(item);
})
| |
forEach可以遍历collection中的每一条数据,然后逐一进行修改。item._id.toString()会将整个ObjectId("...")当成一个字符串来处理,然后从第10个字符开始,取8个字符,得到的是这条数据创建时的时间戳(不带毫秒位数)。在后面补上毫秒位数”000“,然后用Date()方法构造成时间对象,赋值给createTime属性。
用AI做供应链优化:从需求预测到库存分配的端到端工程方案实战
从 PHP 到 AI + Golang,程序员自救转型手记(五十九):前后端自定义后台入口实现
为什么 ACC Core 不能和 OpenAPI、MCP 或 gRPC 绑死?
小米cr6606刷机教程(小米cr6606如何刷机)
用AI做了6首歌曲MV后,我最大的收获不是会做了,而是干中学
VsCode 2026 (version 1.109) 安装及AI使用配置操作步骤