当前位置: 首页 > 编程笔记 >

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

蒋正平
2023-03-14
本文向大家介绍深究从MongoDB的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中获取时间信息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 我试图从mongoDB获取ObjectID,但我没有得到相同的id。看看我下面的代码。 当我检查我的响应时,它显示。但这不是我的实际id。在Mongob中,我的实际id是_id:我想要我的实际id。你能告诉我如何实现它吗?

  • 问题内容: 我是mongodb的新手,并在下面的文档中使用mongoose进行练习,并且遇到了一个非常令人困惑的问题。 我有用户架构 评论模式 和模型 然后我做 但是我在查询中得到空的共同点。根据数据库中的数据,我不应该得到这个结果。搜索后,我仍然找不到错误所在。 最后但并非最不重要的一点是,我需要使用方法,因此我必须在参考文件上使用,是否有意义? 问题答案: $ lookup中的字段是集合名称,

  • 我试图使分页工作与MongoDB没有跳过(); 在mongo shell中,我通过查询得到了以下结果,但在Javascript中是空的[]; 我认为我做的ObjectID是错误的,我使用“mongodb ObjectID”和“mongojs”libs与Node一起使用。js。 Mongo外壳: 输出: JavaScript 我如何得到相同的结果,与我的查询在JS? 使用文档中的$oid进行编辑:

  • 主要内容:创建新的 ObjectId,创建文档的时间戳,将 ObjectId 转换为 String本节我们来介绍一下 MongoDB 中的 ObjectId 的组成,ObjectId 是一个 12 字节的 BSON 类型,具有以下结构: 前 4 个字节表示时间戳; 接下来的 3 个字节表示机器标识符; 紧接着的 2 个字节由进程 id(PID)组成; 最后 3 个字节是一个随机计数器的值。 MongoDB 使用 ObjectId 作为每个文档 _id 字段的默认值,而且该值可以在创建文档时自动

  • 本文向大家介绍python根据时间生成mongodb的ObjectId的方法,包括了python根据时间生成mongodb的ObjectId的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python根据时间生成mongodb的ObjectId的方法。分享给大家供大家参考。具体分析如下: mongodb的_id为ObjectId类型,ObjectId内是包含时间戳信息的,这样我们在保

  • 本文向大家介绍python将MongoDB里的ObjectId转换为时间戳的方法,包括了python将MongoDB里的ObjectId转换为时间戳的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python将MongoDB里的ObjectId转换为时间戳的方法。分享给大家供大家参考。具体分析如下: MongoDB里的_id字段前四位是时间戳的16进制表示,通过Python可以很容易